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

Webpack - webpack-dev-server: command not found

我正在使用 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

一开始以为只是我的项目,后来查看教程的代码检查点:同样的错误!所以全球范围内似乎有些事情搞砸了。

这是我到目前为止尝试过的:

错误信息仍然存在。我还能尝试什么?

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-脚本 ( 或任何类型的 系统中的 .js、.rb) 之类的脚本就像目录中的这些文件一样 /usr/bin 在 UNIX 中。而且,系统必须知道在哪里可以找到它们。 IE。 该位置必须加载到 $PATH 数组中。


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

$ npm install webpack-dev-server -g

这里-g指的是全局作用域


但是,不推荐这样做,因为您可能会遇到版本冲突的问题;因此,您可以在 npmpackage.json 文件中设置命令,例如:

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

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

$ npm start

$ yarn start

记忆和演奏的时间太短了。并且,npm 知道模块 webpack-dev-server.

的位置

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

然后我 运行 webpack-dev-server 得到这个错误 error.

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

我通过删除 colors:true 修复了错误 configuration has an unknown property 'colors'。成功了!

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

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

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

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

纱线

我在 运行 时遇到问题:yarn start

首先用 运行 修复:yarn install

我在使用 Yarn 时遇到了类似的问题,上面的 none 对我有用,所以我简单地删除了 ./node_modules 和 运行 yarn install 问题消失了。

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

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

    npm install --save webpack-dev-server

可以验证'webpack-dev-server'文件夹是否存在于node_modules内。

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

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

npm run start 也可以正常工作,您在 package.json 脚本中的输入应该像上面一样没有 npx。

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

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

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

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

位置查找它

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

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