如何解决“找不到模块‘gulp-util’”的问题?

Dav*_*ani 2 node.js gulp

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

\n\n

当我运行时gulp,出现以下错误

\n\n
\xe2\x9e\x9c  qwer git:(master) \xe2\x9c\x97 gulp\nmodule.js:341\n    throw err;\n    ^\n\nError: Cannot find module \'gulp-util\'\n    at Function.Module._resolveFilename (module.js:339:15)\n    at Function.Module._load (module.js:290:25)\n    at Module.require (module.js:367:17)\n    at require (internal/module.js:16:19)\n    at Object.<anonymous> (/usr/local/lib/node_modules/gulp/bin/gulp.js:4:13)\n    at Module._compile (module.js:413:34)\n    at Object.Module._extensions..js (module.js:422:10)\n    at Module.load (module.js:357:32)\n    at Function.Module._load (module.js:314:12)\n    at Function.Module.runMain (module.js:447:10)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经按照建议清理了node_modules一遍npm install;没有骰子。

\n\n

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

\n\n
npm rm --global gulp\n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以在远程环境上运行 gulp 并且它工作得很好,所以这似乎是本地配置问题。

\n\n
\xe2\x9e\x9c  qwer git:(master) \xe2\x9c\x97 node -v\nv5.10.1\n\xe2\x9e\x9c  qwer git:(master) \xe2\x9c\x97 npm -v\n3.8.3\n
Run Code Online (Sandbox Code Playgroud)\n\n

包.json

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

gulpfile.js

\n\n
var gulp = require(\'gulp\');\n\ngulp.task(\'default\', function() {\n  // place code for your default task here\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

重现错误的步骤

\n\n
rm -rf node_modules/\nnpm install\ngulp\n
Run Code Online (Sandbox Code Playgroud)\n

Dav*_*ani 6

看来我有一个旧版本的 gulp,当我打电话时它没有被删除npm rm --global gulp

\n\n
which gulp\n\xe2\x9e\x9c /usr/local/bin/gulp\n\n# remove old version; not sure where this came from; perhaps brew?\nrm /usr/local/bin/gulp\n\nwhich gulp\n\xe2\x9e\x9c /Users/davidvezzani/.nvm/versions/node/v5.10.1/bin/gulp\n\n# for good measure\nrm /Users/davidvezzani/.nvm/versions/node/v5.10.1/bin/gulp\n\nnpm install --global gulp-cli\n\nwhich gulp\n\xe2\x9e\x9c /Users/davidvezzani/.nvm/versions/node/v5.10.1/bin/gulp\n\ngulp\n\n[07:15:22] Using gulpfile ~/reliacode/crystal_commerce/qwer/gulpfile.js\n[07:15:22] Starting 'default'...\n[07:15:22] Finished 'default' after 71 \xce\xbcs\n
Run Code Online (Sandbox Code Playgroud)\n