【问题标题】:Mismatch in gulp local and CLI versionsgulp 本地和 CLI 版本不匹配
【发布时间】:2015-12-18 06:04:29
【问题描述】:

我之前使用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
  2. 或者我可以将我的全局版本 gulp 更新到 @3.8.11

注意 - 我确实尝试使用 npm update gulp@3.8.11 -g 更新全局 gulp,但什么也没发生。我仍然得到不匹配。

更新以描述问题: 我正在使用 gulp 将多个 JS 文件合并为 1 个 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 版本不匹配。

【问题讨论】:

  • 也许把你得到的实际错误,它可能不是导致错误的 gulp。
  • 我希望可以。但我已经更新了问题以更详细地描述该问题。

标签: gulp


【解决方案1】:

我正在回答我自己的问题,只是为了对其他人有用。

  1. 有没有办法删除全局 gulp 版本,但保留项目特定的 gulp?

没有。 AFAIK,您需要全局安装 gulp 以及特定于您的项目的 gulp。

在此处了解有关 gulp 版本的更多信息。

  1. 或者我可以将我的全局版本 gulp 更新到 @3.8.11?

由于我的本地版本不匹配,我不得不从项目文件夹本身更新它。

npm install gulp@3.8.11 --save

这里有更多信息。

【讨论】:

  • 您实际上并不需要全局gulp。只需全局安装gulp-cli
  • 根据 gulp 文档:如果您之前已全局安装了 gulp 版本,请运行 npm rm --global gulp 以确保您的旧版本不会与 gulp-cli 冲突。跨度>
  • 有人可以向我解释为什么在升级我的 gulp-cli 之前它是 3.9.1 版本,然后在升级到最新版本之后它现在是 2.2.0 吗? [18:55:40] CLI version 3.9.1 [18:55:40] Local version 4.0.2 快把我逼疯了,直到我在 npm gulp-cli 页面上看到当前版本是 2.2.0?
【解决方案2】:

更新您的本地版本npm install gulp@version_you_need

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          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 作为开发依赖项。与 CLI 版本一样,如果您有旧版本,它将更新。

          不匹配的版本正常工作。

          旁注:如果您在 Mac 上工作并且拥有管理员权限,请记住在全局安装前加上 sudo sudo npm install -g gulp.

          但是如果你没有管理员权限并且你可以更新本地版本,但不能更新全球版本,那么你可以从你的项目文件夹中运行node ./node_modules/gulp/bin/gulp.js,它会执行 gulp文件,即使您的 CLI 版本错误,但您需要设置default 任务。

          【讨论】:

            猜你喜欢
            • 2017-03-04
            • 1970-01-01
            • 2016-06-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-13
            相关资源
            最近更新 更多