我创建了一个模块(webapp-module-storage
),它具有以下定义:
的package.json
{
"dependencies": {
...
},
"devDependencies": {
"gulp": "^3.9.1",
...
},
"name": "webapp-module-storage",
"scripts": {
"postinstall": "gulp build",
"test": "gulp test"
}
}
我认为我可以在安装它时使用我的模块在另一个模块中:
npm install github:myorg/webapp-module-storage#master
但是,当我安装我的模块时,我收到此错误:
找不到当地的gulp
尝试运行:npm install gulp
截图
我的理解是,gulp
与我的模块一起发货,因为我在devDependencies
中声明了它,但看起来我的npm postinstall
脚本找不到gulp
。
我错过了什么吗?
答案 0 :(得分:145)
尝试在应用程序目录中运行npm link gulp
(以创建指向全局安装的Gulp模块的本地链接)。
答案 1 :(得分:16)
首先尝试安装依赖项:
npm install
如果仍然无效,请全局安装gulp:
npm install -g gulp
如果您在安装时发现问题。在 npm 之前键入 sudo 。
如果您需要有关全球和本地需要gulp的原因的更多信息,请阅读this回答
答案 2 :(得分:8)
我已经尝试了所有提到的解决方案。最后,我能够通过意识到我使用gulp的位置上缺少 gulpfile.js 文件来解决问题。将gulpfile.js放在我执行gulp的文件夹中后,它对我有用。
答案 3 :(得分:0)
npm link gulp --no-bin-links
运行
其中npm link gulp
创建到全局安装的gulp模块的本地链接,而--no-bin-links
参数将阻止npm为软件包可能包含的任何二进制文件创建符号链接。
您不能将符号链接转换为Windows共享上的同步文件夹,因此需要'--no-bin-links'来解决它。
将其用于不支持符号链接的任何文件系统。
符号链接或符号链接是“虚拟”文件或文件夹,引用了位于其他位置的物理文件或文件夹,并且是许多操作系统(包括Linux和Windows)内置的重要功能。
答案 4 :(得分:0)
npm link gulp --force
使用此命令对我来说效果很好。
答案 5 :(得分:0)
将 Gulp 放入项目的常规依赖项中:
npm i gulp
然后让你的脚本部分像这样引用本地 Gulp:
"scripts": {
"postinstall": "./node_modules/.bin/gulp build",
"test": "./node_modules/.bin/gulp test"
}