NPM不会安装模块依赖项
这是我包含在父项目中的模块的package.json
:
{ "version": "0.0.1", "name": "module-name", "dependencies": { "express": "3.3.4", "grunt": "0.4.1", "grunt-contrib-compass": "0.4.0", "grunt-contrib-copy": "0.4.1", "grunt-contrib-cssmin": "0.4.1", "grunt-contrib-jshint": "0.6.3", "grunt-contrib-requirejs": "0.4.1", "grunt-contrib-uglify": "0.2.2", "grunt-contrib-watch": "0.5.1", "grunt-express-server": "0.4.1", "grunt-karma": "0.4.5", "grunt-regex-replace": "0.2.5", "request": "2.25.0" }, "scripts": { "postinstall": "grunt install" } }
有一点要注意的是,这个模块包含在一个私人的回购协议,我把它包含在父类package.json
如: "module-name": "git+ssh://git@myserver:user/module-name.git"
它看起来像你遇到了一个存在了一段时间的错误,并没有解决scheme。 在npm存储库中,这种情况有几个公开的问题:
- npm安装应recursion检查/安装依赖关系https://github.com/isaacs/npm/issues/1341 (closures)
- 本地私有模块依赖关系https://github.com/isaacs/npm/issues/2442(closed )
在第一个人列出几个解决方法,你可以尝试。
一个替代解决scheme可能(有点hackish)明确列出依赖关系作为第一级依赖。 这就要求你维护这个列表,但是实际上它必须很less进行。
我有非常类似的问题,删除整个node_modules
文件夹,并重新安装为我工作。 从IT人群秀了解到这个诀窍!
rm -rf node_modules npm install
我怀疑你正面临着你的package.json
文件不在你的Gruntfile.js
目录中的Gruntfile.js
。 当你运行你的grunt xxx
命令的时候,你会收到错误消息:
Local Npm module "xxx" not found. Is it installed?
目前,解决scheme是:
- 在与Gruntfile.js相同的目录下创buildpackage.json
- 定义你的grunt项目所需的模块
- 执行
npm install
以在本地加载它们 - 现在所需的grunt命令应该可以工作。
恕我直言,这是可悲的,我们不能有一个父母的NPM模块(即同一个项目中的父目录中的package.json)加载的grunt解决模块。 这里的讨论似乎表明这是为了避免加载“全局”模块,但我认为我们想要从“我的项目”模块加载,而不是。
如果您inheritance了此代码,则可能是依赖项和版本被locking,并且您有一个./npm-shrinkwrap.json文件。
如果您的依赖项没有在该文件中列出,它将永远不会与npm install
命令一起npm install
。
您将需要手动安装软件包,然后运行npm shrinkwrap
来更新shrinkwrap文件。
OP可能适用于较旧版本的节点。 不过,我也和节点4.4.1一样。
它可能会链接到您正在使用的节点版本。 尝试升级到最新版本。 如果某些依赖项与节点版本不兼容,则不会传递加载。
我通过运行npm update
发现了这一点。
升级到最新版本(4.4 – > 5.9)后; 这得到了修复。
您可能需要安装grunt-cli,请在执行npm install之前尝试以下操作:
sudo npm install -g grunt-cli
修复咕噜声不会退出我,你还需要一个有效的咕噜声文件。
来源: https : //stackoverflow.com/a/16456467/241294
以防万一任何人遭受这种困境,碰巧犯了同样的错误,这就是我的情况。 在将我的头撞到墙上一个小时之后,我意识到我的json被错误地嵌套了,关键的“依赖关系”在关键“repository”里面。
不用说,没有错误是明显的,没有安装模块。
我正在使用Windows机器。 1.我删除了node_modules文件夹。 2.不知何故,package.lock.json文件正在创build。 我删除了该文件。 3.然后npm安装。 4.清理构build。 5.运行。
当我在Windows上安装一个干净的节点开发环境时,我收到了这个错误。
为了解决这个问题,我进入了我的新项目目录(我只是用yo angular
脚手架),并input两个命令:
npm install -g grunt --save-dev
这将安装本地grunt依赖项到您的项目。 下一个:
npm install
这将确保您的(新)项目依赖项安装。
田田!
我有同样的问题。 但是在同一台机器上,一个项目有很好的package.json,我所有的依赖项都安装成功。 而在另一个项目中,我的package.json依赖不会被安装,不pipe我做什么。 我只是复制package.json并粘贴到另一个项目。 它的工作! 我发现的差异只是在文件开始的空行。 不知道或者它影响什么,也许还有其他一些问题。 但问题只是package.json文件。