【问题标题】:Can't start gulp on Vagrant VM (Ubuntu, precise64)无法在 Vagrant VM 上启动 gulp(Ubuntu,precision64)
【发布时间】:2014-08-03 05:38:13
【问题描述】:

使用流浪虚拟机。我在package.json 中有一个带有以下devDependencies 的项目:

"gulp": "^3.8.0",
"gulp-clean": "^0.2.4",
"gulp-load-plugins": "^0.5.0"

还有gulpfile.js

'use strict';
var gulp = require('gulp');
gulp.task('clean', function () {
});

我已经使用npm install 命令安装了它们。我也用npm install gulp -g 安装了gulp。

当我尝试运行任何 gulp 命令(例如 gulp -T)时,我得到以下结果:

module.js:340
throw err;
      ^
Error: Cannot find module 'lodash._createwrapper'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/vagrant/api/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/lodash.findindex/node_modules/lodash.createcallback/node_modules/lodash._basecreatecallback/node_modules/lodash.bind/index.js:9:21)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/vagrant/api/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/lodash.findindex/node_modules/lodash.createcallback/node_modules/lodash._basecreatecallback/index.js:9:12)

在我找到this answer并将lodash.bind添加到我的项目依赖项之后,gulp也不起作用,但是异常说它找不到模块lodash.identity

什么可能导致这些问题?虚拟机是precise64,Debian 3.2.57-3。 Gulp 3.8.2,节点 v0.10.28。

【问题讨论】:

标签: node.js ubuntu gulp


【解决方案1】:

如果有人遇到这个问题,我有一个解决方案。可能有一种更快的方法,但这种方法可靠地工作(我不得不这样做两次)。

当你得到第一个错误时,它会说这样那样的lodash包丢失。使用 --save-dev 在本地使用 npm 安装该软件包。然后运行gulpgulp {your task},你会得到一个新的错误,缺少一个不同的lodash 包。这样做 20 或 30 次,然后它就会起作用。

每次您安装丢失的 lodash 包时,它都会与另一个丢失的包一起生成一个新错误。如果您查看丢失文件所在的路径,您可以稍微缩短此过程,您将看到所有名为lodash.x 的目录。如果您使用--save-dev 安装那些lodash.x 软件包,您可能不必运行npm 这么多次(无法验证一种或另一种方式)。

注意:这几乎不是一个合适的解决方案,但是在构建一个我需要完成的依赖于 gulpgulp-preprocess 的网站时,让它运行变得至关重要.

评论:可以在 [Installation of gulp through node.js's npm breaks windows]

【讨论】:

  • 这太愚蠢了,愚蠢得要命。但这是有效的。嗯。
  • 想象一下我尝试了多少其他事情,然后才开始尝试。
【解决方案2】:

问题是由长路径 Windows 限制引起的(如 here 所述)。在 Windows 主机上运行 npm isntall &amp;&amp; gulp 可以正常工作,并且没有描述的错误。

但是,如果某些命令需要在主机上运行,​​而有些命令需要在访客 Vagrant 机器上运行,则这样的配置将很难维护。所以,就目前而言,我的长期解决方案是完全放弃 Vagrant。


这个解决方案的建议最初是由@MaartenScholz 发布的,但答案在我能够接受之前就被删除了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2014-03-03
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多