如何解决"无法找到模块' gulp-util'"?

时间:2016-04-19 14:17:55

标签: node.js gulp

今天早上我已经花了一个小时看了解现有的SO答案以及互联网上的其他地方。

当我运行gulp时,我收到以下错误

➜  qwer git:(master) ✗ gulp
module.js:341
    throw err;
    ^

Error: Cannot find module 'gulp-util'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/gulp/bin/gulp.js:4:13)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)

我已按照建议再次清除node_modulesnpm install;没有骰子。

我已经安装了旧版本的node / npm并尝试过,确保删除全局安装的gulp。仍然没有运气。 (https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md

npm rm --global gulp

我可以在远程环境中运行gulp并且它运行正常,因此它似乎是本地配置问题。

➜  qwer git:(master) ✗ node -v
v5.10.1
➜  qwer git:(master) ✗ npm -v
3.8.3

的package.json

{
  "name": "qwer",
  "version": "1.0.0",
  "description": "asdlf kjalsdk fjalsdk jfla",
  "main": "config/gulpfile.js",
  "dependencies": {
    "babel-preset-es2015": "^6.6.0",
    "babelify": "^7.2.0",
    "backbone": "^1.3.3",
    "del": "^2.2.0",
    "gulp": "^3.9.1",
    "browserify": "^13.0.0",
    "gulp-concat": "^2.6.0",
    "gulp-rename": "^1.2.2",
    "gulp-sass": "^2.2.0",
    "gulp-sourcemaps": "^1.6.0",
    "gulp-uglify": "^1.5.3",
    "jquery": "^2.2.3",
    "jstify": "^0.14.0",
    "underscore": "^1.8.3",
    "vinyl-buffer": "^1.0.0",
    "moment": "^2.13.0",
    "yargs": "^4.6.0",
    "vinyl-source-stream": "^1.1.0"
  },
  "devDependencies": {
    "browser-sync": "^2.12.3",
    "gulp": "^3.9.1"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git@crystal.github.com:crystalcommerce/pos-frontend.git"
  },
  "author": "John Doe",
  "license": "ISC"
}

gulpfile.js

var gulp = require('gulp');

gulp.task('default', function() {
  // place code for your default task here
});

重现错误的步骤

rm -rf node_modules/
npm install
gulp

2 个答案:

答案 0 :(得分:0)

看来我有一个旧版本的gulp在我拨打npm rm --global gulp时没有删除。

which gulp
➜ /usr/local/bin/gulp

# remove old version; not sure where this came from; perhaps brew?
rm /usr/local/bin/gulp

which gulp
➜ /Users/davidvezzani/.nvm/versions/node/v5.10.1/bin/gulp

# for good measure
rm /Users/davidvezzani/.nvm/versions/node/v5.10.1/bin/gulp

npm install --global gulp-cli

which gulp
➜ /Users/davidvezzani/.nvm/versions/node/v5.10.1/bin/gulp

gulp

[07:15:22] Using gulpfile ~/reliacode/crystal_commerce/qwer/gulpfile.js
[07:15:22] Starting 'default'...
[07:15:22] Finished 'default' after 71 μs

答案 1 :(得分:0)

尝试添加npm-shrink-wrap以强制锁定npm包json以使用特定的gulp版本而不管npm全局缓存中的任何内容,或者您​​可以尝试使用npm clean cache清除npm缓存文件夹。