本日、LavalのElixirでgulpコマンドでエラーが発生したので、修正方法をまとめました。
Local gulp not found Try running: npm install gulp
どういうわけか、数か月前まではちゃんと動いていた、gulp コマンドが動きません。。
1 2 3 |
# gulp Local gulp not found in c:\xampp\htdocs\blog Try running: npm install gulp |
とりあえず、エラーメッセージを信じて直してみます。
1 |
# npm install gulp |
再度、gulp を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
module.js:340 throw err; ^ Error: Cannot find module 'vinyl' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:289:25) at Module.require (module.js:366:17) at require (module.js:385:17) at Object.<anonymous> (C:\xampp\htdocs\blog\gulpfile.js:1:76) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:313:12) at Module.require (module.js:366:17) at require (module.js:385:17) |
うーん。。。いけてない。
数か月前までは、ちゃんと動いていたのになんで動かなくなったんだろう?
node.js, npm, gulp の再インストール
原因がよくわからないので、node.js, npm, gulp をすべて削除してから、最新版をインストールしてみることにします。
事前に、node.js, npm, gulpの現行バージョンを調べておきます。
1 2 3 4 5 6 7 8 9 |
# node --version v4.2.4 # npm --version 3.5.3 # gulp --version CLI version 3.9.0 Local version 3.9.1 |
これらのパッケージを削除するには次のようにします。
node.js, npm は、Windowsの場合、コントロールパネルから削除すればよいです。
gulp の削除方法についてはよくわからなかったので、
C:\Users\(ユーザー名)\AppData\Roaming\npm を
C:\Users\(ユーザー名)\AppData\Roaming\npm-old にリネームしておきました。
それでは、最新版をインストールします。
node.jsとnpmの最新版をインストールするには、Node.js公式サイト からインストールします。
node.jsの最新版は、4.4.4です。
LTS(Long Term Support)版をダウンロードしてインストールします。
これで、node.jsとnpmはインストールされました。
次に、gulpは以下のコマンドでインストールします。
1 |
# npm install gulp |
再インストール後のバージョンを確認しておきます。
1 2 3 4 5 6 7 8 9 |
# node --version v4.4.4 # npm --version 2.15.1 # gulp --version [17:33:03] CLI version 3.9.1 [17:33:03] Local version 3.9.1 |
nodeのバージョンは上がったものの、npmのバージョンはむしろ下がった????
よくわからないので気にしないことにします。
再度、gulp を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
module.js:327 throw err; ^ Error: Cannot find module 'lodash._basecopy' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (C:\xampp\htdocs\blog\gulpfile.js:1:76) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) |
うーん、いけてない。
行番号が変わっただけで、同じエラーが出ます。。。
npm install
いろいろと調べてみると、「npm install してみろ」って書いてあるサイトを見つけたので試してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
C:\xampp\htdocs\blog>npm install npm WARN optional dep failed, continuing fsevents@1.0.12 npm WARN optional dep failed, continuing fsevents@1.0.12 npm WARN optional dep failed, continuing fsevents@1.0.12 / > node-sass@3.7.0 install C:\xampp\htdocs\blog\node_modules\laravel-elixir\node_ modules\gulp-sass\node_modules\node-sass > node scripts/install.js Binary downloaded and installed at C:\xampp\htdocs\blog\node_modules\laravel-eli xir\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64-46\binding.no de > node-sass@3.7.0 postinstall C:\xampp\htdocs\blog\node_modules\laravel-elixir\n ode_modules\gulp-sass\node_modules\node-sass > node scripts/build.js "C:\xampp\htdocs\blog\node_modules\laravel-elixir\node_modules\gulp-sass\node_mo dules\node-sass\vendor\win32-x64-46\binding.node" exists. testing binary. Binary is fine; exiting. laravel-elixir@5.0.0 node_modules\laravel-elixir ├── gulp-rename@1.2.2 ├── path@0.11.14 ├── underscore-deep-extend@0.0.5 ├── underscore@1.8.3 ├── insert-css@0.2.0 ├── require-dir@0.3.0 ├── partialify@3.1.6 (string-to-js@0.0.1, through@2.3.8) ├── run-sequence@1.1.5 (chalk@1.1.3) ├── glob@5.0.15 (path-is-absolute@1.0.0, inherits@2.0.1, once@1.3.3, inflight @1.0.4, minimatch@3.0.0) ├── parse-filepath@0.5.0 (path-ends-with@0.2.3) ├── merge-stream@0.1.8 (through2@0.6.5) ├── vinyl-paths@1.0.0 (through2@0.6.5) ├── vinyl-source-stream@1.1.0 (vinyl@0.4.6, through2@0.6.5) ├── gulp-concat@2.6.0 (concat-with-sourcemaps@1.0.4, through2@0.6.5) ├── gulp-rev@5.1.0 (object-assign@2.1.1, rev-hash@1.0.0, sort-keys@1.1.1, rev -path@1.0.0, vinyl-file@1.3.0, through2@0.6.5) ├── vinyl-buffer@1.0.0 (through2@0.6.5, bl@0.9.5) ├── gulp-sourcemaps@1.6.0 (graceful-fs@4.1.4, convert-source-map@1.2.0, strip -bom@2.0.0, vinyl@1.1.1, through2@2.0.1) ├── gulp-rev-replace@0.4.3 (through2@2.0.1) ├── gulp-batch@1.0.5 (async-done@1.2.0, stream-array@1.1.2) ├── gulp-load-plugins@1.2.2 (multimatch@2.0.0, resolve@1.1.7, findup-sync@0.2 .1) ├── del@1.2.1 (is-path-cwd@1.0.0, object-assign@3.0.0, each-async@1.1.1, glob by@2.1.0, is-path-in-cwd@1.0.0, rimraf@2.5.2) ├── gulp-coffee@2.3.2 (merge@1.2.0, coffee-script@1.10.0, through2@0.6.5, vin yl-sourcemaps-apply@0.1.4) ├── gulp-if@1.2.5 (through2@0.6.5, gulp-match@0.2.1, ternary-stream@1.2.3) ├── gulp-watch@4.3.5 (path-is-absolute@1.0.0, glob2base@0.0.12, vinyl@0.5.3, readable-stream@2.1.2, vinyl-file@1.3.0, chokidar@1.5.0, anymatch@1.3.0) ├── gulp-uglify@1.5.3 (uglify-save-license@0.4.1, deap@1.0.0, isobject@2.1.0, vinyl-sourcemaps-apply@0.2.1, fancy-log@1.2.0, through2@2.0.1, uglify-js@2.6.2) ├── gulp-util@3.0.7 (array-differ@1.0.0, array-uniq@1.0.2, lodash._reescape@3 .0.0, lodash._reinterpolate@3.0.0, beeper@1.1.0, object-assign@3.0.0, lodash._re evaluate@3.0.0, replace-ext@0.0.1, minimist@1.2.0, fancy-log@1.2.0, has-gulplog@ 0.1.0, vinyl@0.5.3, chalk@1.1.3, lodash.template@3.6.2, gulplog@1.0.0, through2@ 2.0.1, multipipe@0.1.2, dateformat@1.0.12) ├── gulp-notify@2.2.0 (node.extend@1.1.5, lodash.template@3.6.2, through2@0.6 .5, node-notifier@4.5.0) ├── browserify@11.2.0 (https-browserify@0.0.1, tty-browserify@0.0.0, path-bro wserify@0.0.0, constants-browserify@0.0.1, punycode@1.4.1, builtins@0.0.7, strin g_decoder@0.10.31, browser-resolve@1.11.1, isarray@0.0.1, os-browserify@0.1.2, i nherits@2.0.1, htmlescape@1.1.1, commondir@0.0.1, process@0.11.3, stream-browser ify@2.0.1, assert@1.3.0, shell-quote@0.0.1, defined@1.0.0, xtend@4.0.1, domain-b rowser@1.1.7, querystring-es3@0.2.1, timers-browserify@1.4.2, util@0.10.3, deps- sort@1.3.9, events@1.0.2, parents@1.0.1, vm-browserify@0.0.4, has@1.0.1, console -browserify@1.1.0, url@0.10.3, readable-stream@2.1.2, subarg@1.0.0, through2@1.1 .1, shasum@1.0.2, concat-stream@1.4.10, duplexer2@0.0.2, buffer@3.6.0, stream-ht tp@1.7.1, read-only-stream@1.1.1, glob@4.5.3, JSONStream@1.1.1, resolve@1.1.7, b rowserify-zlib@0.1.4, syntax-error@1.1.6, labeled-stream-splicer@1.0.2, browser- pack@5.0.1, crypto-browserify@3.11.0, insert-module-globals@6.6.3, module-deps@3 .9.1) ├── watchify@3.7.0 (defined@1.0.0, xtend@4.0.1, through2@2.0.1, outpipe@1.1.1 , chokidar@1.5.0, anymatch@1.3.0, browserify@13.0.1) ├── gulp-autoprefixer@2.3.1 (object-assign@2.1.1, through2@0.6.5, vinyl-sourc emaps-apply@0.1.4, postcss@4.1.16, autoprefixer-core@5.2.1) ├── gulp-cssnano@2.1.2 (object-assign@4.1.0, vinyl-sourcemaps-apply@0.2.1, cs snano@3.5.2) ├── gulp-shell@0.5.2 (async@1.5.2, through2@2.0.1, lodash@4.12.0) ├── browser-sync@2.12.8 (ucfirst@1.0.0, emitter-steward@1.0.0, dev-ip@1.0.1, immutable@3.7.6, ua-parser-js@0.7.10, qs@6.1.0, opn@3.0.3, browser-sync-client@2 .4.2, http-proxy@1.13.2, portscanner@1.0.0, connect@3.4.1, serve-static@1.10.2, resp-modifier@6.0.1, micromatch@2.3.7, chokidar@1.4.3, fs-extra@0.26.7, socket.i o@1.4.5, serve-index@1.7.3, yargs@4.4.0, localtunnel@1.8.1, bs-recipes@1.2.2, ea sy-extender@2.3.2, eazy-logger@2.1.3, lodash@4.10.0, browser-sync-ui@0.5.19) ├── gulp-sass@2.3.1 (object-assign@4.1.0, vinyl-sourcemaps-apply@0.2.1, throu gh2@2.0.1, node-sass@3.7.0) ├── babel-preset-react@6.5.0 (babel-plugin-syntax-flow@6.8.0, babel-plugin-sy ntax-jsx@6.8.0, babel-plugin-transform-flow-strip-types@6.8.0, babel-plugin-tran sform-react-jsx-source@6.8.0, babel-plugin-transform-react-display-name@6.8.0, b abel-plugin-transform-react-jsx@6.8.0) ├── babelify@7.3.0 (object-assign@4.1.0, babel-core@6.8.0) ├── gulp-babel@6.1.2 (object-assign@4.1.0, replace-ext@0.0.1, vinyl-sourcemap s-apply@0.2.1, through2@2.0.1, babel-core@6.8.0) ├── babel-preset-es2015@6.6.0 (babel-plugin-transform-es2015-block-scoped-fun ctions@6.8.0, babel-plugin-transform-es2015-object-super@6.8.0, babel-plugin-tra nsform-es2015-typeof-symbol@6.8.0, babel-plugin-check-es2015-constants@6.8.0, ba bel-plugin-transform-es2015-duplicate-keys@6.8.0, babel-plugin-transform-es2015- arrow-functions@6.8.0, babel-plugin-transform-es2015-literals@6.8.0, babel-plugi n-transform-es2015-spread@6.8.0, babel-plugin-transform-es2015-unicode-regex@6.8 .0, babel-plugin-transform-es2015-template-literals@6.8.0, babel-plugin-transfor m-es2015-function-name@6.8.0, babel-plugin-transform-es2015-modules-commonjs@6.8 .0, babel-plugin-transform-es2015-for-of@6.8.0, babel-plugin-transform-es2015-de structuring@6.8.0, babel-plugin-transform-es2015-computed-properties@6.8.0, babe l-plugin-transform-es2015-sticky-regex@6.8.0, babel-plugin-transform-es2015-para meters@6.8.0, babel-plugin-transform-es2015-classes@6.8.0, babel-plugin-transfor m-es2015-block-scoping@6.8.0, babel-plugin-transform-es2015-shorthand-properties @6.8.0, babel-plugin-transform-regenerator@6.8.0) └── gulp-less@3.1.0 (object-assign@4.1.0, vinyl-sourcemaps-apply@0.2.1, throu gh2@2.0.1, less@2.7.1, accord@0.23.0) |
うまくいったのか?
再再度、gulpを実行してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
C:\xampp\htdocs\blog>gulp [13:20:16] Using gulpfile C:\xampp\htdocs\blog\gulpfile.js [13:20:16] Starting 'default'... [13:20:16] Starting 'sass'... Fetching Sass Source Files... - resources\assets\sass\app.scss Saving To... - public\css\app.css [13:20:17] Finished 'default' after 1.01 s [13:20:19] gulp-notify: [Laravel Elixir] Sass Compiled! [13:20:19] Finished 'sass' after 2.88 s [13:20:19] Starting 'scripts'... Fetching Scripts Source Files... - public\css\app.css - bower_components\datatables.net-dt\css\jquery.dataTables.css Saving To... - public/css/app.css [13:20:20] gulp-notify: [Laravel Elixir] Scripts Merged! [13:20:20] Finished 'scripts' after 497 ms [13:20:20] Starting 'scripts'... Fetching Scripts Source Files... - public\css\app.css - bower_components\datatables.net-select-dt\css\select.dataTables.css Saving To... - public/css/app.css [13:20:20] gulp-notify: [Laravel Elixir] Scripts Merged! [13:20:20] Finished 'scripts' after 51 ms [13:20:20] Starting 'scripts'... Fetching Scripts Source Files... - public\css\app.css - bower_components\jqplot\jquery.jqplot.min.css Saving To... - public/css/app.css [13:20:20] gulp-notify: [Laravel Elixir] Scripts Merged! [13:20:20] Finished 'scripts' after 48 ms [13:20:20] Starting 'scripts'... Fetching Scripts Source Files... - public\css\app.css - bower_components\jquery-ui\themes\smoothness\jquery-ui.css Saving To... - public/css/app.css [13:20:20] gulp-notify: [Laravel Elixir] Scripts Merged! [13:20:20] Finished 'scripts' after 46 ms [13:20:20] Starting 'copy'... Fetching Copy Source Files... - bower_components/bootstrap-sass/assets/fonts/bootstrap/**/**/* Saving To... - public/fonts/bootstrap [13:20:20] Finished 'copy' after 45 ms [13:20:20] Starting 'scripts'... Fetching Scripts Source Files... - bower_components\jquery\dist\jquery.js - bower_components\jquery-ui\jquery-ui.js - bower_components\bootstrap-sass\assets\javascripts\bootstrap.js - bower_components\bootstrap-contextmenu\bootstrap-contextmenu.js - bower_components\datatables.net\js\jquery.dataTables.js - bower_components\datatables.net-select\js\dataTables.select.js - bower_components\jqplot\jquery.jqplot.min.js - bower_components\jqplot\plugins\jqplot.dateAxisRenderer.min.js - bower_components\jqplot\plugins\jqplot.canvasAxisTickRenderer.min.js - bower_components\jqplot\plugins\jqplot.cursor.min.js - bower_components\jqplot\plugins\jqplot.highlighter.min.js Saving To... - public/js/app.js [13:20:20] gulp-notify: [Laravel Elixir] Scripts Merged! [13:20:20] Finished 'scripts' after 277 ms C:\xampp\htdocs\blog> |
おお。
なんかうまくいったみたいです。
原因と反省点
このエラーが発生し始めた理由はよくわかりませんでした。
ただ、よく思い出して考え直してみたら、node_modulesフォルダを誤って削除してしまっていたからかもしれません。
これが理由なら、確かに
node_modules\laravel-elixir
が見つからないって怒られますからね。
最後まで読んでいただきありがとうござました。
この記事が気に入っていただけたらシェアしてくれると嬉しいです。
コメント