Webpack - webpack-dev-server:找不到命令

时间:2015-07-24 13:15:18

标签: node.js npm webpack

我正在使用webpack处理React webapp,松散地与this tutorial并行。

无意中,我将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 cache clean正如有人提及this issue on github
  • 使用npm install -g webpack
  • 全局安装webpack
  • 从我的系统中完全删除node和npm(使用this guide)并使用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;

12 个答案:

答案 0 :(得分:137)

好的,很简单:

npm install webpack-dev-server -g

让我感到困惑的是我起初并不需要这样做,可能是新版本的内容发生了变化。

答案 1 :(得分:20)

  

仅供参考,您可以通过命令行访问任何脚本   需要将脚本注册为shell脚本(或任何类型的脚本)   像系统中的.js,.rb)这样的脚本就像在dir中的这些文件一样   UNIX中的/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的位置。

答案 2 :(得分:11)

脚本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

.表示在当前目录中查找。

答案 3 :(得分:6)

<强>纱线

我在运行时遇到了问题:.neighbor

通过先运行yarn start

进行修复

答案 4 :(得分:3)

我遇到了同样的问题,但是以下步骤帮助我摆脱了这个问题。

  1. 在本地安装“ webpack-dev-server”(在项目目录中,因为它不是从全局安装中选择的)

    npm install --save webpack-dev-server

可以验证node_modules内部是否存在“ webpack-dev-server”文件夹。

  1. 使用npx运行以直接运行

npx webpack-dev-server --mode development --config ./webpack.dev.js

npm run start也可以正常工作,其中您在package.json脚本中的输入应与上面类似,而没有npx。

答案 5 :(得分:1)

在安装VSCode并添加远程Git存储库后,我注意到了相同的问题。以某种方式删除了/node_modules/.bin文件夹,并在命令行中运行npm install --save webpack-dev-server,重新安装了丢失的文件夹并解决了我的问题。

答案 6 :(得分:0)

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

然后我运行webpack-dev-server并得到此错误 error

如果我不使用npm install -g webpack-dev-server进行安装,那么如何解决?

我通过删除configuration has an unknown property 'colors'修正了错误colors:true。它奏效了!

答案 7 :(得分:0)

我发现接受的答案并不适用于所有情况。为确保100%正常工作,必须清除npm缓存。直接转到缓存并清除锁,缓存,anonymous-cli-metrics.json;或者可以尝试npm cache clean

由于作者在尝试推荐的解决方案之前已经清除了缓存,因此可能无法使其成为先决条件的一部分。

答案 8 :(得分:0)

我在纱线上遇到了类似的问题,以上都不对我有用,所以我只是删除了this并运行了./node_modules,问题就消失了。

答案 9 :(得分:0)

关于

的问题
  

如何在本地运行webpack而不是通常的Global选项

     

看看

https://stackoverflow.com/a/51165867/10003436

答案 10 :(得分:0)

npm install webpack-dev-server -g-Windows操作系统

最好在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

答案 11 :(得分:0)

对于全局安装: npm install webpack-dev-server -g

用于本地安装 npm install --save-dev webpack

当您在package.json文件中引用webpack时,它会尝试在位置node_modules \ .bin \

中查找它

本地安装后,文件wbpack将在以下位置创建: \ node_modules \ .bin \ webpack