typescript 在没有Nest特定包的NEST JS中使用NPM包

92vpleto  于 2023-04-22  发布在  TypeScript
关注(0)|答案(3)|浏览(141)

在我的Nest js应用程序中,我想添加没有任何nest特定实现的库。例如sharp或jimp。
我在我的项目中添加了这些,如

npm i jimp.

并导入到我的代码中。

import Jimp from 'jimp';

当我在本地构建和服务时,它工作得很好,但是当我从docker服务并构建生产版本时,我得到以下错误:

> planiac@0.0.0 serve /app
backend_1  | > node dist/apps/api/main.js
backend_1  | 
backend_1  | internal/modules/cjs/loader.js:965
backend_1  |   throw err;
backend_1  |   ^
backend_1  | 
backend_1  | Error: Cannot find module 'jimp'
backend_1  | Require stack:
backend_1  | - /app/dist/apps/api/main.js
backend_1  |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:962:15)
backend_1  |     at Function.Module._load (internal/modules/cjs/loader.js:838:27)
backend_1  |     at Module.require (internal/modules/cjs/loader.js:1022:19)
backend_1  |     at require (internal/modules/cjs/helpers.js:72:18)
backend_1  |     at Object.<anonymous> (/app/dist/apps/api/main.js:2687:18)
backend_1  |     at __webpack_require__ (/app/dist/apps/api/main.js:20:30)
backend_1  |     at Object.<anonymous> (/app/dist/apps/api/main.js:1874:62)
backend_1  |     at __webpack_require__ (/app/dist/apps/api/main.js:20:30)
backend_1  |     at Object.<anonymous> (/app/dist/apps/api/main.js:3423:73)
backend_1  |     at __webpack_require__ (/app/dist/apps/api/main.js:20:30) {
backend_1  |   code: 'MODULE_NOT_FOUND',
backend_1  |   requireStack: [ '/app/dist/apps/api/main.js' ]
backend_1  | }
gj3fmq9x

gj3fmq9x1#

试试这个而不是import

const jimp = reuire("jimp")
9rnv2umw

9rnv2umw2#

在Docker中,看起来jimp没有加载到node_modules中。尝试使用--save选项运行npm i jimp,以便将包保存到package-lock.json中,并确保Docker构建运行npm install(由于您使用Nest,它可能已经运行了)

yvt65v4c

yvt65v4c3#

当你只有require时,就像padmakar所说的,你不会包含类型。如果你想有intellisense类型:

import { default as jimpi } from 'jimp';
const Jimp = require('jimp') as typeof jimpi;

相关问题