从GitHub下拉模块并按照说明构建它之后,我尝试使用以下方法将其拉入现有项目中:
> npm install ../faye
Run Code Online (Sandbox Code Playgroud)
这似乎可以解决问题:
> npm list
/home/dave/src/server
??? faye@0.7.1
??? cookiejar@1.3.0
??? hiredis@0.1.13
??? redis@0.7.1
Run Code Online (Sandbox Code Playgroud)
但是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)
Run Code Online (Sandbox Code Playgroud)
我真的很想了解这里发生了什么,但我对于下一步该看哪里感到有点失落.有什么建议?
Bil*_*ill 475
使用仅npm install将模块安装到当前目录中(在名为的子目录中node_modules).app.js位于home/dave/src/server/?如果没有,并且您想要从任何目录使用该模块,则需要使用全局安装它npm install -g.
我通常在本地安装大多数软件包,以便它们与我的项目代码一起检入.
更新(3/2016):
我收到了很多反应,特别是我检查了我的代码所依赖的包.几天前,有人未发布他们所有的软件包(https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.kq9s64clp),这些软件包破坏了React,Babel和几乎所有东西其他.希望现在很清楚,如果你有生产代码,你就不能依赖NPM来实际维护你的依赖关系.
Abh*_*ngh 425
我有一个非常相似的问题.删除整个node_modules文件夹并重新安装为我工作:
rm -rf node_modules
npm install
Run Code Online (Sandbox Code Playgroud)
Piy*_*dia 77
npm install --save module_name
Run Code Online (Sandbox Code Playgroud)
例如,如果错误是:
{[错误:无法找到模块'/root/.npm/form-data']代码:'MODULE_NOT_FOUND'}
然后您可以通过执行命令来解决此问题npm install --save form-data.
mgt*_*s99 19
对于TypeScript用户,如果要导入内置节点模块(例如http,path或url),并且遇到错误,"Cannot find module "x"则可以通过运行修复错误
npm install @types/node --save-dev
Run Code Online (Sandbox Code Playgroud)
该命令将NodeJS TypeScript定义导入到项目中,允许您使用Node的内置模块.
如果使用nvm,请检查是否为正确的Node.js版本编译了绑定到其他库的现有node_modules.
我遇到了同样的错误.原因如下:我们使用nvm,因为我们在服务器上运行两个应用程序,一个需要Node.js 5.6,因为它使用node-gd(目前不在Node.js 6上运行),另一个需要Node.js 6. Node.js 6是apt-get安装.
我们还使用pm2工具进行部署.
因此,默认设置是当nvm无效时pm2进程启动,因此它使用了Node.js的apt-get安装(版本6).所以主要的pm2守护进程以Node.js 6开头.如果我在fork模式下运行应用程序,它们会在不同的进程中启动,并且nvm设置生效.当我以群集模式运行应用程序时 - 它们继承非nvm环境.
因此,当我尝试切换到群集模式时,应用程序无法启动,因为为5.6编译的绑定失败并显示此消息.
当nvm setings生效时,我通过重启pm2来解决这个问题.还应该修复启动脚本.
我昨天遇到此错误。花了我一段时间才意识到,其中的main条目package.json指向了我已移动的文件。一旦我更新,错误消失了,程序包正常工作了。
如果您正在require调用的模块main在 package.json 中缺少或不正确的字段,则可能会遇到此错误。尽管模块本身已安装,但 npm/node 必须使用单个 .js 文件作为模块的入口点。如果该main字段不存在,则默认为index.js在您的模块文件夹中查找。如果你的模块的主文件不是index.js,它就不能require。
在将-based 模块browserify转换为 CommonJS require-able 模块时发现;browserify不关心缺失的main字段,所以错误没有被注意到。
node_module从项目中删除根文件夹(例如:) myApp.转到myApp文件夹,然后从终端输入以下命令
>myApp>npm install
Run Code Online (Sandbox Code Playgroud)
它将安装项目所需的所有依赖项模块.
当团队中的其他人package.json在SVN中更新时,我遇到了同样的问题。仅仅删除node_modules目录没有帮助。我如何解决该问题是:
rm -rf node_modules
rm package.json
rm package-lock.json
svn up
npm install
ng build --env=prod
Run Code Online (Sandbox Code Playgroud)
希望这对某人有帮助!
如果所有其他方法都不适合你......试试
npm link package_name
Run Code Online (Sandbox Code Playgroud)
例如
npm link webpack
npm link autoprefixer
Run Code Online (Sandbox Code Playgroud)
等等
rm package-lock.json
rm -r node_modules
npm i
Run Code Online (Sandbox Code Playgroud)
那应该解决问题并安装所有软件包。
小智 5
逐步运行以下命令:
npm cache clean -force
rm package-lock.json
rm -r node_modules
npm i --save --legacy-peer-deps
| 归档时间: |
|
| 查看次数: |
1441153 次 |
| 最近记录: |