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存储库中,这种情况有几个公开的问题:

在第一个人列出几个解决方法,你可以尝试。

一个替代解决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文件。