私は、Webpackを使ってReact Webアプリケーションを大まかに一緒に作業しています このチュートリアル 。
誤って、node_modulesフォルダーをgitに追加しました。それからgit rm -f node_modules/*
を使ってそれを再び削除しました。
さて、Webpackサーバを起動しようとすると、以下のエラーが出ます。
> webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors
sh: webpack-dev-server: command not found
npm ERR! Darwin 14.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "run" "devserve"
npm ERR! node v0.12.4
npm ERR! npm v2.10.1
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] devserve: `webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors`
npm ERR! spawn ENOENT
最初は自分のプロジェクトだと思いましたが、それからチュートリアルのコードチェックポイントをチェックしました。同じエラーです。それで、何かが世界的にめちゃくちゃに思われる。
これが私がこれまでに試したことです:
rm node_modules
とnpm install
で再インストールnpm cache clean
githubに関するこの号npm install -g webpack
を使ってwebpackをグローバルにインストールしますエラーメッセージはまだ持続します。他に何を試すことができますか?
シモンズ:webpack.dev.config.js
の内容は:
var config = require('./webpack.config.js');
var webpack = require('webpack');
config.plugins.Push(
new webpack.DefinePlugin({
"process.env": {
"NODE_ENV": JSON.stringify("development")
}
})
);
module.exports = config;
さて、それは簡単でした:
npm install webpack-dev-server -g
私が最初はそれを必要としていなかったことを私を混乱させた、おそらく物事は新しいバージョンで変更されました。
参考までに、あなたが試していたようにコマンドラインからスクリプトにアクセスするには、そのスクリプトをシェルスクリプトとして登録する必要があります(または.js、.rbのような種類のスクリプト)UNIXのdir
/usr/bin
にあるこれらのファイルのようなシステムで。そして、システムはそれらを見つける場所を知っていなければなりません。つまり、場所は$PATH
配列にロードする必要があります。
あなたの場合、スクリプトwebpack-dev-server
はすでに./node_modules
ディレクトリのどこかにインストールされていますが、システムはそれにアクセスする方法を知りません。そのため、コマンドwebpack-dev-server
にアクセスするには、グローバルスコープにもスクリプトをインストールする必要があります。
$ npm install webpack-dev-server -g
ここで、-g
はグローバルスコープを指します。
しかし、これは推奨されている方法ではありません。バージョンの競合する問題に直面する可能性があるからです。そのため、代わりにnpm
のpackage.json
ファイルに次のようなコマンドを設定できます。
"scripts": {
"start": "webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors"
}
この設定により、簡単なコマンドであなたが望むスクリプトにアクセスすることができます。
$ npm start
暗記して遊ぶのはとても短いです。そしてnpm
はモジュールwebpack-dev-server
の位置を知っています。
スクリプトwebpack-dev-server
はすでに./node_modulesディレクトリ内にインストールされています。あなたはどちらかによって世界的にそれを再びインストールすることができます
Sudo npm install -g webpack-dev-server
またはこのように実行する
./node_modules/webpack-dev-server/bin/webpack-dev-server.js -d --config webpack.dev.config.js --content-base public/ --progress --colors
.
は現在のディレクトリでそれを見ることを意味します。
糸
実行時に問題が発生しました:yarn start
最初の実行で修正されました:yarn install
私は同じ問題を抱えていたが、以下のステップは私がそれから抜け出すのを助けた。
'webpack-dev-server'をローカルにインストールする(グローバルインストールから選択していなかったのでプロジェクトディレクトリに)
npm install --save webpack-dev-server
Node_modules内に 'webpack-dev-server'フォルダが存在するかどうかを確認できます。
npx webpack-dev-server --mode development --config ./webpack.dev.js
npm run start
は、package.jsonスクリプトのエントリがnpxなしの場合のように上記のようになっている場合にも正常に機能します。
私はYarnと同じような問題を抱えていました、上記のどれも私のために働きませんでした、それで私は単に./node_modules
を削除してyarn install
を実行して問題はなくなりました。
私は、受け入れられた答えがすべてのシナリオでうまくいくとは限らないことを見つけました。確実に100%動作させるには、npmキャッシュをクリアする必要があります。直接キャッシュに移動してロック、キャッシュ、anonymous-cli-metrics.jsonをクリアします。あるいはnpm cache clean
を試すこともできます。
著者は推奨される解決策を試す前にキャッシュをクリアしていたため、前提条件の一部にすることができなかった可能性があります。
npm install webpack-dev-server -g-Windows OS
許可エラーを回避するために、LinuxでSudoを使用する方が良い
Sudo npm install webpack-dev-server -g
Sudo npm install webpack-dev-server --saveを使用して、package.jsonに追加できます。
以下のコマンドを実行する必要がある場合があります。
npm install webpack-cli --saveまたはnpm install webpack-cli -g