我有一个节点包。当我从包的根目录运行npm install时,它安装了一堆东西,但随后打印了一些错误消息,看起来像这样:

npm WARN unmet dependency /Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob需要grace -fs@'~1.2.0'但会加载

我一定很困惑npm install到底做了什么。如果它检测到依赖项,难道不应该安装它吗?在什么情况下它会给我这样的错误消息,我如何解决依赖关系?


当前回答

在安装npm时,我的WIFI出现了问题。删除node_modules并重新运行npm install修复了它。

其他回答

在安装npm时,我的WIFI出现了问题。删除node_modules并重新运行npm install修复了它。

类似的事情,我想再加一步。

注意,在npm版本> 1.4.9上,'npm install'确实安装了devDependencies。首先尝试删除现有模块和缓存:

remove node_modules $ rm -rf node_modules/
run $ npm cache clean

然后尝试:

npm install --dev
npm update --dev

这至少可以解决递归依赖项解析。

对于每个——UNMET PEER DEPENDENCY,例如——UNMET PEER DEPENDENCY rxjs@5.0.0-rc.2,使用npm install——save rxjs@5.0.0-rc.2安装该依赖项,直到不再有更多的UNMET依赖项。

祝你好运。

NPM install将从NPM -shrinkwrap安装所有的包。Json,但可能会忽略package中的包。Json,如果它们没有在前者中预设。

如果你的项目有npm-shrinkwrap。Json,确保你运行NPM shrinkwrap来重新生成它,每次你添加/删除/更改package.json。

我运行npm list并安装了所有列出为UNMET DEPENDENCY的包

例如:

├──UNMET DEPENDENCY css-loader@^0.23.1 NPM安装css-loader@^0.23.1