Gulp本地和CLI版本不匹配

qmelpv7a  于 2022-12-08  发布在  Gulp
关注(0)|答案(6)|浏览(280)

我之前使用npm install gulp -g全局安装了gulp。然后我克隆了一个现有的项目,这就要求我使用它自己的gulp。现在当我从项目文件夹之外执行gulp -v时,我会得到这样的不匹配。

C:\Users\userme>    
[11:14:05] CLI version 3.8.11
[11:14:05] Local version 1.0.0

当我从我的项目文件夹中做一个大口的时候,我得到了这个。

C:\project\new\tools>
[11:14:26] CLI version 3.8.11
[11:14:26] Local version 3.8.11

现在我还不能使用gulp正确地合并我的JS文件(我在min文件中得到一些奇怪的格式错误),我怀疑这与这种不匹配有关。
1.是否有办法删除全局gulp版本,但保留项目特定的gulp
1.或者我可以将我的全球版本gulp更新到@3.8.11吗?
注意-我确实尝试使用npm update gulp@3.8.11 -g更新全局gulp,但没有任何React。我仍然得到不匹配。

**更新来描述这个问题:**我正在使用gulp将多个JS文件合并成一个main.js文件。我在合并文件中得到的格式有语法错误。

合并文件中需要输出-

...
define('utils/knockoutBindings/slider',['require','ko','jquery'],function(require) {
    'use strict';
    var ko = require('ko');
    var $ = require('jquery');
...

合并文件中的实际输出(以下1行代码错误地替换了以上4行代码)-

...
var'utils/knockoutBindings/slider',['require','ko','jquery'],function(require) {
...

看起来似乎gulp代码有问题,但其他用户也使用了相同的代码,并且在他们的端部工作得很好。我们发现的唯一区别是我的gulp版本中的不匹配。

ecfsfe2w

ecfsfe2w1#

我在回答我自己的问题,只是为了对别人有用。
1.有没有办法删除全局的大口版本,但保留项目特定的大口?
不。AFAIK,您需要在全局范围内安装gulp,也需要为您的项目安装一个特定的gulp。
更多关于吞咽版本的信息在这里。

1.或者我可以将我的全球版本gulp更新到@3.8.11吗?
由于我在本地版本中遇到了不匹配的情况,我不得不从项目文件夹本身更新它。

npm install gulp@3.8.11 --save

点击此处了解更多信息。

xqk2d5yq

xqk2d5yq2#

更新本地版本npm install gulp@version_you_need
更新CLI版本npm install -g gulp@version_you_need

nnt7mjpx

nnt7mjpx3#

删除node_modules文件夹并在该目录中运行npm install gulp解决了我的问题。

kxe2p93d

kxe2p93d4#

npm install -g gulp没有为我修复它,无论是在项目文件夹内还是在项目文件夹外。我的gulp版本在我的package.json文件中已经是正确的。我所要做的就是在项目文件夹内运行npm install,项目文件夹中的gulp版本就被更正了。

xienkqul

xienkqul5#

将本地版本更新为与全局版本相同的版本解决了这个问题。我的初始gulp -v生成了CLI version 3.9.1Local version 4.0.0。我从项目文件夹npm install gulp@3.9.1 --save中更新了本地版本。这解决了我的问题。

aij0ehis

aij0ehis6#

Gulp 4使用了一个更新的CLI,需要全局更新。这个CLI向后兼容任何本地的Gulp 3.X项目-Read more
看起来gulp-clilatest version(在这篇文章的时候)是2.3.0,这意味着总是会有不匹配。
如果运行npm install -g gulp,则将安装最新版本的CLI。如果安装了任何其他版本,则将更新为最新版本。
本地版本的最新版本(在本文发表时)是4.0.2
运行npm install --save-dev gulp将Gulp的最新版本作为dev-dependency安装到您的项目文件夹中。与CLI版本一样,如果您有旧版本,它也会更新。
不匹配的版本工作正常。

    • 备注:**如果您使用Mac并且拥有管理员权限(例如sudo npm install -g gulp),请记得在全局安装前加上sudo
    • 但是**如果您没有管理员权限,并且可以更新本地版本,但不能更新全局版本,那么您可以从项目文件夹运行node ./node_modules/gulp/bin/gulp.js,它将执行gulp文件,即使您的CLI版本错误,但您 * 需要 * 设置default任务。

相关问题