这是我在父项目中包含的模块的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"
答案 0 :(得分:129)
看起来你遇到了一个已存在很长时间但尚无解决方案的bug。在npm存储库中有几个针对此案例的未解决问题:
在第一篇文章中,人们列出了您可能尝试的几种解决方法。
另一种解决方案可能是(有点hackish)明确地将依赖关系列为第一级依赖关系。这要求你保持清单,但实际上它必须很少完成。
答案 1 :(得分:105)
我有类似的问题,删除整个node_modules
文件夹并重新安装为我工作。从IT Crowd节目中学到了这个技巧!
rm -rf node_modules
npm install
答案 2 :(得分:24)
我正在使用Windows机器。
答案 3 :(得分:15)
如果你继承了这段代码,可能是依赖项和版本被锁定了,你有一个./npm-shrinkwrap.json文件。
如果您的依赖项未在该文件中列出,则永远不会使用npm install
命令安装它。
您需要手动安装软件包,然后运行npm shrinkwrap
来更新shrinkwrap文件。
答案 4 :(得分:10)
我怀疑您遇到的问题是package.json
文件与Gruntfile.js
不在同一目录中。当您运行grunt xxx
命令时,会收到错误消息,如:
Local Npm module "xxx" not found. Is it installed?
目前,解决方案是:
npm install
以在本地加载答案 5 :(得分:9)
OP可能适用于较旧版本的节点。但是,我也遇到了与节点4.4.1相同的情况。
它很可能与您正在使用的节点版本相关联。尝试升级到最新版本。如果某些依赖项与节点版本不兼容,则不会传递加载。
我通过运行npm update
找到了这个。
升级到最新版本(4.4 - > 5.9)后;这个问题得到解决。
答案 6 :(得分:7)
就我而言,它有助于删除node_modules
和package-lock.json
。
之后只需使用npm install
重新安装所有内容。
答案 7 :(得分:4)
万一有人遇到这种困境,并且碰巧犯了我所做的同样的马因娜错误,这就是我的情况。在我的头撞到墙上一小时之后,我意识到我的json错误地嵌套了,关键的“依赖关系”在关键的“存储库”里面。
毋庸置疑,没有明显的错误,也没有安装任何模块。
答案 8 :(得分:3)
您可能需要安装grunt-cli,在执行npm安装之前尝试此操作:
sudo npm install -g grunt-cli
修复了grunt没有为我退出,你还需要一个有效的grunt文件。
答案 9 :(得分:3)
另一种解决方法是将其添加到模块package.json
脚本部分
"preinstall": "npm install {Packages You depend on}"
它将要做的是,它将安装模块所需的所有软件包,而您不会收到该错误。
答案 10 :(得分:2)
当我在Windows上安装一个干净的Node dev环境时,我收到了这个错误。
为了解决这个问题,我进入了我的新项目目录(我只是搭建了yo angular
)并输入了两个命令:
npm install -g grunt --save-dev
这会将本地grunt依赖项安装到您的项目中。下一个:
npm install
这将确保安装所有(新)项目依赖项。
多田!
答案 11 :(得分:1)
还要检查您的包裹名称是否被正确接受:
<form class="navbar-form" role="search">
<div class="input-group add-on">
<input class="form-control" placeholder="Recherche..." name="search" id="search" type="text">
<div class="input-group-btn">
<button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
</form>
public function index(Request $req){
if($req->search == ""){
$feedbacks = Feedback::paginate(5);
return view('admin.feedbacks.index', compact('feedbacks'));
} else {
$feedbacks = Feedback::whereHas('candidats.name', 'LIKE', '%' .$req->search . '%')
->paginate(3);
$feedbacks->appends($req->only('search'));
return view('admin.feedbacks.index', compact('feedbacks'));
}
}
答案 12 :(得分:0)
我花了几个小时试图调试这个问题,最后我将 NODE_ENV= env 变量设置为“生产”。
来自https://riptutorial.com/node-js/example/10101/setting-node-env--production- “当 NODE_ENV 环境变量设置为‘生产’时,package.json 文件中的所有 devDependencies 在运行 npm install 时都将被完全忽略。”
答案 13 :(得分:0)
我认为我也遇到了这个问题,发现的最佳解决方案是查看控制台并找出抛出的错误。因此,我仔细阅读了一下,发现问题是我没有在package.json
中指定存储库,说明和有效名称。我添加了这些信息,一切正常。
答案 14 :(得分:0)
值得一提的是确保您的依存关系应位于dependencies
的{{1}}部分(而不是package.json
)。
我的问题与OP基本相同:
devDependencies
安装一个私有仓库(我们将其命名为repo1
)(我们称之为"module-name": "git+ssh://git@myserver:user/my-repo-name.git"
)repo2
的{{1}}中,不存在来自repo2
的一个程序包依赖项。node_modules
在repo1
而不是repo1
中列出了这种依赖关系devDependencies
的{{1}}中的依赖项从dependencies
移到repo1
package.json
中,我删除了devDependencies
和dependencies
,做了repo2
,这真是一个依赖!
答案 15 :(得分:0)
使用旧的节点版本。使用最新版本的节点,如下所示:
$ nvm use 8.0
$ rm -rf node_modules
$ npm install
$ npm i somemodule
编辑:还请确保您save
。
例如:npm install yourmoduleName --save
答案 16 :(得分:0)
我遇到了同样的问题。但是在同一台机器上,一个项目有一个很好的package.json,我的所有依赖项都已成功安装。在另一个项目中,无论我做什么,都没有安装package.json依赖项。 我刚刚复制了package.json并粘贴到另一个项目中。它奏效了! 我发现的差异只是文件开头的空行。不知道或它影响任何事情,也许是其他一些问题。但问题只是package.json文件。