从 GitHub 拉取模块并按照说明构建它后,我尝试使用以下命令将其拉入现有项目:
> npm install ../faye
这似乎可以解决问题:
> npm list
/home/dave/src/server
└─┬ [email protected] /cdn-cgi/l/email-protection
├── [email protected] /cdn-cgi/l/email-protection
├── [email protected] /cdn-cgi/l/email-protection
└── [email protected] /cdn-cgi/l/email-protection
但 Node.js 找不到该模块:
> node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'faye'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
我真的很想了解这里发生了什么,但我有点不知道下一步该去哪里。有什么建议么?
Using npm install
仅将模块安装到当前目录中(在名为的子目录中)node_modules
)。 app.js 位于home/dave/src/server/
?如果没有,并且您想从任何目录使用该模块,则需要使用以下命令全局安装它npm install -g
.
我通常在本地安装大多数软件包,以便它们与我的项目代码一起签入。
更新(8/2019):
现在你可以使用包锁.json https://docs.npmjs.com/files/package-lock.json文件,当 npm 修改你的 node_modules 目录时自动生成。因此您可以省略包裹托运,因为package-lock.json
跟踪您当前正在使用的node_modules的确切版本。要从以下位置安装软件包package-lock.json
代替package.json
使用命令npm ci
.
更新(2016 年 3 月):
我的回复受到了很多批评,特别是我签入了我的代码所依赖的包。几天前,有人取消发布了他们的所有软件包(https://kodfabrik.com/journal/i-ve-just-liberated-my-modules https://kodfabrik.com/journal/i-ve-just-liberated-my-modules) (存档于 Wayback Machine https://web.archive.org/web/20210327093144/https://kodfabrik.com/journal/i-ve-just-liberated-my-modules)这破坏了 React、Babel 以及几乎所有其他东西。希望现在很清楚,如果您有生产代码,则不能依赖 NPM 实际上为您维护依赖项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)