首页 > 解决方案 > 在没有 Nest 特定包的 NEST JS 中使用 NPM 包

问题描述

在我的 Nest js 应用程序中,我想添加没有任何特定于嵌套实现的库。例如锐利或吉普。

我在我的项目中添加了这些,比如

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  | }

标签: node.jstypescriptnestjssharpjimp

解决方案


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


推荐阅读