全局安装时找不到节点快速模块

克鲁德多克

我的节点应用程序目录位于/usr/node/express-test/app.js

我遵循了此线程来设置我的环境,这样我就可以让自由职业者进入并在我们的服务器上全局安装npm软件包,而不必访问sudo。

如何在没有root的情况下进行npm全局安装

我已经检查了我的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' ]

}

请问可能是什么问题的想法?

MiKr13

我对此的建议:

  1. 首先,请勿将express或任何其他软件包作为全局put软件包安装在中,package.json并运行npm install或执行npm install --save express将软件包保存到本地node_modules并将其列出在package.json中,在package.jsonpackage-lock.jsongit中跟踪该使其可以在其他版本中使用这样,如果您转移到某些新的VM,则无需再次将软件包安装为全局软件包,那么您可以做的npm install更好或者做得更好npm ci,这一切都可以。
  2. 其次,如果您仍然想使用全局软件包,请转到/usr/node/.npm-packages/lib/node_modules是否可以在其中找到express文件夹

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章