node.js - 全局安装时找不到节点快递模块
问题描述
我的节点应用程序目录位于 /usr/node/express-test/app.js
我按照这个线程设置了我的环境,这样我就可以让一个自由职业者进来并在我们的服务器上全局安装 npm 包,而无需访问 sudo。
我检查了我的 NODE_PATH... 对我来说看起来不错。
echo $NODE_PATH
/usr/node/.npm-packages/lib/node_modules
但是,当我尝试运行我的 app.js 时看到的错误似乎是它找不到我全局安装的 express 模块
app.js
/usr/node/express-test# node app.js
internal/modules/cjs/loader.js:983
throw err;
^
Error: Cannot find module 'express'
Require stack:
- /usr/node/express-test/app.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
at Function.Module._load (internal/modules/cjs/loader.js:862:27)
at Module.require (internal/modules/cjs/loader.js:1042:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (/usr/node/express-test/app.js:2:15)
at Module._compile (internal/modules/cjs/loader.js:1156:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/node/express-test/app.js' ]
}
请问可能是什么问题的想法?
解决方案
我对此的建议:
- 首先,不要安装 express 或任何其他包作为全局放置包
package.json
并运行npm install
或npm install --save express
将包保存到本地 node_modules 并在 package.json 中列出,在 git 中跟踪package.json
&package-lock.json
以便它可以在其他地方,这样,如果你转移到一些新的虚拟机,你不需要再次安装全局包,你可以做npm install
或做得更好npm ci
,这一切都可以工作。 - 其次,如果你还想使用全局包,去
/usr/node/.npm-packages/lib/node_modules
看看你是否可以在express
那里找到文件夹
推荐阅读
- python - 类型错误:不可散列类型“列表”,当我尝试使用正则表达式查找和计算文本文件中单个单词的重复次数时
- android - 无法在颤动中加载图像资产
- python - 无法在 Docker Continummio/anaconda3 上构建映像
- angular - 订阅后调用 next 时,如何获取订阅中 Observable 的最后发出值?
- python - 如何获取在 pyglet 中播放的当前源的名称?
- django - 将您自己的链接添加到 django 管理面板的标题
- flutter - 发布包时出错:pub 以退出代码 1 结束
- javascript - 使用 javascript 将数据导出到 csv 以获取产品表
- javascript - Firebase 文件上传工作了一段时间,但随后失败
- python - 没有为 selenium 定义名称驱动程序