如何安装Gulp 4?

52

我一直在使用gulp-watch。当前版本的gulp-watch依赖于调用gulp.parrallel,而这个调用仅在gulp 4中可用。

然而,gulp 4并未通过npm仓库提供。 npm info gulp dist-tags返回:{最新版本:'3.9.0'}

我看到git仓库中有一个4.0分支。但是尝试使用以下命令的变体来安装它会失败:npm install https://github.com/gulpjs/gulp#v4.0.0


1
https://demisx.github.io/gulp4/2015/01/15/install-gulp4.html 最佳答案且易于设置 - Jinna Balu
11个回答

38
# Uninstall previous Gulp installation and related packages, if any
$ npm rm gulp -g
$ npm rm gulp-cli -g
$ cd [your-project-dir/]
$ npm rm gulp --save-dev
$ npm rm gulp --save
$ npm rm gulp --save-optional
$ npm cache clean # for npm < v5

# Install the latest Gulp CLI tools globally
$ npm install gulpjs/gulp-cli -g

# Install Gulp 4 into your project as dev dependency
$ npm install gulp --save-dev

# Check the versions installed. Make sure your versions are not lower than shown.
$ gulp -v
---
[10:48:35] CLI version 2.0.1
[10:48:35] Local version 4.0.0

详细信息请查看此博客页面:https://demisx.github.io/gulp4/2015/01/15/install-gulp4.html


1
人们从一开始就是怎么知道的呢?我猜你肯定是通过某种方式查找到的,而不是通过试错猜测得出的。我曾经看到过其他 alpha 阶段软件包类似的情况,但我并没有发现其中有任何系统性。个人而言,我希望能够像 npm install packagename --latest 这样使用最新版本的包。你是如何做到的呢? - Konrad Viltersten
@KonradViltersten 这些内容部分来自与Gulp开发人员的沟通,其余则来源于使用Gulp 4的实际经验。 - demisx
2
该死...换句话说就是“运气和黑魔法”。至少在我这个无知的人看来是这样,哈哈哈。我非常感激StackOverflow和像您这样积极参与的用户。 - Konrad Viltersten
好像他们已经更改了存储库标签。现在您必须使用gulp@next进行操作。我已经更新了安装说明。如果您发现任何其他问题,请告诉我。我已经有一段时间没有测试过这些内容了。 - demisx
4
我猜测情况已经发生了改变,因为 gulp@next 无法工作,但是现在使用 gulp@4.0.0 可以了。请注意,这里的“我”指的是说话者本人。 - Phil Gyford
显示剩余3条评论

35

Gulp已经从他们的GitHub存储库中删除了4.0分支,所以以前使用npm install gulpjs/gulp.git#4.0 --save-dev安装的方式不再适用。

他们在他们的README中说明了安装gulp 4.0的正确方式是运行以下命令:

npm install gulp@next


1
在我的情况下,我必须从package.json中删除旧的gulpjs/gulp.git#4.0引用,并进行新的npm install gulp --save-dev。 - Matt Beckman
NPM给出了一个很好的错误提示:"命令失败:git checkout 4.0",不得不通过日志来查找实际原因... - Alexander
npm ERR! code ETARGET npm ERR! notarget 找不到 gulp@next 的匹配版本。 - therobyouknow

31
npm install gulpjs/gulp.git#4.0 --save-dev

有没有办法在 package.json 文件的 devDependencies 中安装它?由于它是预发布版,我似乎无法解决 beta gulp 4。 - Peder Rice
5
"gulp": "github:gulpjs/gulp#4.0" }``` 这段代码中的意思是,在该项目的开发环境中,使用版本为4.0的gulp构建工具。其中,“devDependencies”表示这是一个开发依赖,不会在生产环境中使用。 - atilkan
5
人们是如何从一开始就知道的呢?我猜你是通过某种方式查找而不是通过试错猜测得出的。我看到其他 Alpha 阶段软件包也有类似的情况,但我找不出其中的任何系统性规律。个人而言,我希望有类似于“npm install packagename --latest”之类的东西。你是如何做到的呢? - Konrad Viltersten

15
运行以下命令以检查已安装在您的计算机上的gulp cli版本。
gulp -v
如果您的版本不是4,则请按照以下步骤在您的计算机上全局安装gulp。
npm uninstall -g gulp
npm install -g "gulpjs/gulp#4.0"

现在本地安装gulp 4

npm uninstall gulp --save-dev
npm install "gulpjs/gulp#4.0" --save-dev

7
全局安装 gulp 包没有意义。你需要全局安装的是 gulp-cli,它已经兼容 4.0 版本。因此,执行以下命令:npm install -g gulp-cli - metalim

11

2018年11月 » npm审计建议运行: npm install --save-dev gulp@4.0.0


3
要安装gulp-4,必须要有支持gulp 4.0的CLI版本1.2.2。
要安装gulp-cli 1.2.2,请运行sudo npm install gulp-cli@1.2.2 -g。
要安装gulp 4.0,请运行npm install 'gulpjs/gulp.git#4.0' --save-dev。
当你运行gulp -v命令时,你应该会得到:
[11:38:36] CLI version 1.2.2
[11:38:36] Local version 4.0.0-alpha.2
在GitHub上也有类似的问题:GitHub

2
我的安装方式有些不同。
运行:
npm install 'gulpjs/gulp.git#4.0' --save-dev

或者

npm install 'gulpjs/gulp#4.0' --save-dev

出现了错误:

npm ERR! code EINVALIDTAGNAME npm ERR! Invalid tag name "gulp#4.0": Tags may not have any characters that encodeURIComponent encodes.

NB 我只是在安装本地的 gulp-4 时遇到了问题,所以我查看了上一次 package.json 的安装记录,发现了这个问题。

"gulp": "github:gulpjs/gulp#4.0",

所以我的做法是安装本地的 gulp:

install local gulp

npm install "github:gulpjs/gulp#4.0" --save-dev

这样做是可行的,成功安装了本地 gulp 4。

[15:45:55] CLI version 1.4.0
[15:45:55] Local version 4.0.0-alpha.2

2
截至2018年12月28日,以下命令在本地安装版本4应该完美运行。
npm i -D gulp

1
我写了一个批处理文件,根据@demisx的答案完成了任务。
我的问题是缺少npm配置参数“prefix”,因此我的全局目录是node二进制目录。 我非常确定这并不总是这种情况,但我可以在从项目根目录运行此脚本时(重新)设置它:
@ECHO OFF
echo configuring npm
set USERNAME=<enter username>
set USERPROFILE=C:\Users\%USERNAME%
set APPDATA=%USERPROFILE%\AppData\Roaming
call npm config set prefix %APPDATA%\npm

SET DIR_PROJECT="D:/stuff/plugins/wallpaper_engine/raintime-dev"

echo Uninstall previous Gulp installation and related packages, if any
call npm rm gulp -g
call npm rm gulp-cli -g

echo cd %DIR_PROJECT%
cd /D %DIR_PROJECT%

call npm rm gulp --save-dev
call npm rm gulp --save
call npm rm gulp --save-optional
call npm cache clean

echo Install the latest Gulp CLI tools globally
call npm install gulpjs/gulp-cli -g

echo Install Gulp 4 into your project from 4.0 GitHub branch as dev dependency
rem call npm install gulpjs/gulp#4.0 --save-dev
call npm install gulpjs/gulp --save-dev

echo Check the versions installed.

call gulp -v

pause

这段文本的英译中文为:

脚本最终显示了这个:

[14:59:48] CLI version 2.0.1
[14:59:48] Local version 4.0.0

希望有所帮助!

1
我通过运行以下命令解决了这个问题:

which gulp

rm -rf /usr/local/bin/gulp

npm i -g gulp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接