node.js - 在没有 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 | }
解决方案
在您的 Docker 中,它看起来jimp
没有加载到您的node_modules
. 尝试npm i jimp
使用该--save
选项运行,以便将包保存到package-lock.json
中,并确保您的 Docker 构建运行npm install
(因为您使用的是 Nest,它可能已经运行)
推荐阅读
- google-chrome - Chrome 扩展程序无法将消息从后台成功发送到内容脚本
- react-native - 如何在原生反应中打开 android TVOS 中的分析菜单?
- php - 在 MYSQL 和 PHP 中显示值直到第一个空格
- javascript - 如何在 setState 响应后立即更新状态?
- javascript - 在 Reactjs 中设置嵌套对象状态的正确方法是什么?
- r - java.lang.String cannot be cast to java.util.List 将数据从 R 螺栓发送到下一个螺栓时显示错误
- matlab - 如何在 Matlab 中使用带 normcdf 的多精度计算工具箱
- zalenium - 在仪表板上:可以根据状态过滤视频吗?
- cucumber - Cucumber:黄瓜功能文件中是否有“程序\宏”可用?
- python - 如何使用python3替换列表列表中的元素?