Webpack – webpack-dev-server:命令未find

我正在使用webpack在一个React webapp上工作,松散地与本教程一起。

不小心,我添加了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! Blabber@0.0.1 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 install
  • npm cache clean ,有人提到这个问题在github上
  • npm install -g webpack
  • 从我的系统中完全删除节点和npm(使用本指南 )并使用brew重新安装

错误消息仍然存在。 我还有什么可以尝试?

PS: 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 

什么让我感到困惑,我一开始并不需要,可能事情改变了一个新的版本。

仅供参考,要通过命令行访问任何脚本,您需要将该脚本注册为系统中的shell脚本(或任何types的脚本,如.js,.rb) ,如同这些文件中的目录UNIX中的/usr/bin 。 而且,系统必须知道在哪里find它们。 即该位置必须加载到$PATH数组中。


在你的情况下,脚本webpack-dev-server已经安装在./node_modules目录的某个地方,但系统不知道如何访问它。 因此,要访问命令webpack-dev-server ,还需要在全局范围内安装脚本。

 $ npm install webpack-dev-server -g 

这里, -g指的是全局范围。


但是,这不是build议的方法,因为您可能会遇到版本冲突的问题。 所以,你可以在npmpackage.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 

. 意思是在当前目录中查看它。

我安装npm install --save-dev webpack-dev-server然后我设置package.json和webpack.config.js就像这样: setting 。

然后我运行webpack-dev-server并得到这个错误的错误 。

如果我不使用npm install -g webpack-dev-server来安装,那该如何解决呢?

我通过去除colors:true修正错误configuration has an unknown property 'colors' colors:true 。 有效!

我发现接受的答案在所有情况下都不起作用。 为了确保它100%的工作,还必须清除npmcaching。 直接转到caching并清除locking,caching,anonymous-cli-metrics.json; 或者可以尝试npm cache clean

由于作者在尝试推荐的解决scheme之前已经清除了caching,所以可能无法使其成为前提条件的一部分。