我已经创建了一个NPM包并安装它来测试它。在具有npm install
的嵌套node_modules文件夹中安装GruntJS的依赖项时,NPM / Node会抛出ENOENT错误。
我采取以下步骤来创建错误:
npm install pavilion
cd node_modules/pavilion
npm install
安装grunt的依赖项时,在package.json中列出...它会抛出错误,如下所示。 PS。请继续阅读以下内容。
npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.0.0
npm ERR! npm v3.8.6
npm ERR! path /Users/Baasdesign/Desktop/test/node_modules/pavilion/node_modules/.staging/pavilion-8a19d0be
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/Users/Baasdesign/Desktop/test/node_modules/pavilion/node_modules/.staging/pavilion-8a19d0be' -> '/Users/Baasdesign/Desktop/test/node_modules/pavilion'
npm ERR! enoent ENOENT: no such file or directory, rename '/Users/Baasdesign/Desktop/test/node_modules/pavilion/node_modules/.staging/pavilion-8a19d0be' -> '/Users/Baasdesign/Desktop/test/node_modules/pavilion'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.0.0
npm ERR! npm v3.8.6
npm ERR! path npm-debug.log.575049388
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'npm-debug.log.575049388'
npm ERR! enoent ENOENT: no such file or directory, open 'npm-debug.log.575049388'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR! /Users/Baasdesign/Desktop/test/node_modules/pavilion/npm-debug.log
现在奇怪的部分。当我使用Bower安装包时...我没有收到错误。以下是我的步骤:
bower install pavilion
cd bower_components/pavilion
npm install
一切安装都很好。区别? ---> package.json。 bower install package.json可以找到。 NPM没有。
Bower给了我一个干净的package.json,由我自己创建,然后发布到npm。 NPM安装给了我一个package.json,那里有更多的信息。当我使用bower package.json ...一切安装正常...即使我粘贴并替换node_modules文件夹中的npm package.json。
这里的交易是什么?似乎随npm安装提供的package.json会破坏依赖项安装。
这是bower package.json交付: http://pastebin.com/g8FgSDNG
这是npm package.json交付: http://pastebin.com/xTiQ15ih
我尝试npm cache clean
,但它没有用。
的sysinfo:
答案 0 :(得分:1)
节点非常棒,但有时会很痛苦!
我最近自己犯了这个错误,并且回到早期版本的节点修复了我的问题。
我建议您尝试使用“节点版本管理器”的早期安装,在您的系统上安装一些节点版本,并提供在不同版本之间切换的方法。
我知道这不是一个非常技术性的答案,我希望有人对你的问题有具体的答案!
[https://github.com/creationix/nvm]
这是版本管理器链接希望它有所帮助
答案 1 :(得分:0)
问题是我没有在package.json中保存依赖项。 如果你这样做,我猜Node会错误的路径。
所以正确的工作流程是:
initialProcessing(sourceObject, errorObject)
if (errorObject.errorCode ! = null or not blanks)
stop processing
else
Do procedure A (modifiedSourceObject, errorObject);
if ( errorObject.errorCode ! = null or not blanks )
stop processing
else
Do procedure B (anotherObject, errorObject);
if ( errorObject.errorCode ! = null or not blanks )
stop processing
else
Do procedure C (someotherObject, errorObject)
.............
.........
(创建package.json)npm init
npm install <package> --save-dev
cd node_modules/pavilion
然后它工作正常。需要将npm install
添加到父目录的package.json。