我创建了一个模块(webapp-module-storage
),它具有以下定义:
软件包.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
个
但是,当我安装模块时,我收到以下错误:
未找到本地吞咽
尝试运行:npm安装吞咽
屏幕截图
我的理解是,gulp
是随我的模块一起提供的,因为我在devDependencies
中声明了它,但看起来我的npm postinstall
脚本找不到gulp
。
我错过了什么吗?
7条答案
按热度按时间cnjp1d6j1#
尝试在应用程序目录中运行
npm link gulp
(以创建到全局安装的Gulp模块的本地链接)。tyg4sfes2#
请先尝试安装依赖项:
如果仍然不起作用,请安装Gulp全局:
如果在安装时发现问题,请在npm前键入sudo。
如果你需要更多关于为什么你需要全球和本地吞咽的信息,请阅读this答案
vohkndzv3#
我尝试了所有提到的解决方案。最后我意识到gulpfile.js文件在我使用gulp的位置上丢失了。在将gulpfile. js放在我执行gulp的文件夹中后,它对我起作用了。
91zkwejq4#
npm link gulp --no-bin-links
运行此
其中,
npm link gulp
创建了一个到全局安装的gulp模块的本地链接,而--no-bin-links
参数将阻止npm为该包可能包含的任何二进制文件创建符号链接。您不能将符号链接转换为Windows共享上的同步文件夹,因此您需要使用“--no-bin-links”来绕过它。
对于任何不支持符号链接的文件系统都可以使用它。
符号链接或符号链接是“虚拟”文件或文件夹,它们引用位于其他位置的物理文件或文件夹,并且是许多操作系统(包括Linux和Windows)内置的重要功能。
ncecgwcz5#
npm link gulp --force
使用此命令对我来说效果很好。
plicqrtu6#
将Gulp放入项目的常规依赖项中:
然后让脚本部分引用本地Gulp,如下所示:
jecbmhm37#
我使用Visual Studio代码和带有Power Shell的终端也有这个问题。当我改变执行策略时,这个问题对我来说消失了。我从gulp获得关于这个解决方案的信息。在示例中的执行策略改变在图片中。