关于node.js:Webpack – webpack-dev-server:找不到命令

Webpack - webpack-dev-server: command not found

我正在使用webpack开发一个react webapp,与本教程大致相同。

我不小心把node_modules文件夹添加到了git中。然后我又用git rm -f node_modules/*把它取了下来。

现在,当我尝试启动Webpack服务器时,我得到以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> 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重新安装
  • 有人在Github上提到过EDOCX1[3]
  • 使用npm install -g webpack在全球安装Webpack
  • 完全删除系统中的节点和NPM(使用本指南)并使用BREW重新安装

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

附:webpack.dev.config.js的含量为:

1
2
3
4
5
6
7
8
9
10
11
12
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;


很简单:

1
npm install webpack-dev-server -g

让我困惑的是,起初我不需要它,可能是新版本改变了。


FYI, to access any script via command-line like you were trying, you
need to have the script registered as a shell-script (or any kind of
script like .js, .rb) in the system like these files in the the dir
/usr/bin in UNIX. And, system must know where to find them. i.e.
the location must be loaded in $PATH array.

在您的例子中,脚本webpack-dev-server已经安装在./node_modules目录的某个位置,但系统不知道如何访问它。因此,要访问命令webpack-dev-server,还需要在全局范围内安装脚本。

1
$ npm install webpack-dev-server -g

这里,-g是指全球范围。

但是,这不是推荐的方法,因为您可能面临版本冲突问题;因此,您可以在npmpackage.json文件中设置命令,如下所示:

1
2
3
 "scripts": {
   "start":"webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors"
   }

此设置将允许您使用简单命令访问所需的脚本

1
$ npm start

记忆和演奏都很短。并且,npm知道模块webpack-dev-server的位置。


脚本webpack-dev-server已经安装在./node_modules目录中。您可以通过以下方式重新进行全局安装:

1
sudo npm install -g webpack-dev-server

或者像这样运行

1
./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安装—保存Webpack开发服务器

  • 可以验证节点模块中是否存在"webpack dev server"文件夹。

  • 使用NPX直接运行
  • npx webpack-dev-server --mode development --config ./webpack.dev.js

    npm run start在package.json脚本中的条目应该像上面一样,没有NPX,也可以很好地工作。


    关于问题

    How to run webpack locally instead of the usual Global option

    take a look at

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


    我对纱线也有类似的问题,但没有一个对我有用,所以我简单地移除了./node_modules,运行yarn install,问题就消失了。


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

    因为作者在尝试推荐的解决方案之前已经清除了缓存,所以可能无法将其作为前提条件的一部分。


    我使用npm install --save-dev webpack-dev-server安装,然后设置package.json和webpack.config.js,如下所示:设置。

    然后我运行Webpack dev server并得到这个错误错误。

    如果我不使用npm install -g webpack-dev-server来安装,那么如何修复它?

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