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议的方法,因为您可能会遇到版本冲突的问题。 所以,你可以在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
.
意思是在当前目录中查看它。
我安装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,所以可能无法使其成为前提条件的一部分。