的WebPack不被识别为一个内部或外部命令,可操作的程序或批处理文件

问题描述:

我学习React.js和我使用Windows 8 OS.i已导航到我的根文件夹的WebPack不被识别为一个内部或外部命令,可操作的程序或批处理文件

1.Created the package.json file by npm init 
2. install webpack by npm install -S webpack.now webpack has been downloaded to my modules folder 
3. install webpack globally by typing npm install webpack -g 
4. i am also having a webpack.config.js in my root folder which contains the source and ouput directory 
5. when i type the webpack command i am getting the below error. 

的WebPack是未被识别为内部或外部命令,可操作程序或批处理文件

我也有这个问题很长一段时间。 (安装的WebPack全球等,但仍然无法识别) 原来,我还没有指定NPM环境变量(其中文件webpack.cmd坐) 所以我添加到Path变量

c:\Users\Me\AppData\Roaming\npm\ 

如果你正在使用PowerShell中,您可以键入以下命令,以有效地添加到您的路径:

[Environment]::SetEnvironmentVariable("Path", "$env:Path;c:\Users\Me\AppData\Roaming\npm\", "User") 

重要:不要忘记关闭,以应用此重新打开PowerShell窗口。

希望它有帮助。

+0

Vlado谢谢你这么多。这个作品完美 – yasar

+4

井Iam卡在同一个地方...你可以请详细说明你的答案 – Intruder

+0

我是按照所有步骤,但它没有工作,然后最终我意识到,我没有打开CMD作为管理员。 –

作为替代方案,如果你的WebPack本地安装,你可以明确地指定命令提示符应该找到它,像这样:

node_modules\.bin\webpack 

(这并不认为你和目录内你的package.json,你已经运行npm install webpack)。这个问题是安装Webpack全球

+3

这应该是被接受的答案 –

+1

同意Max,原因是建议在本地安装webpack(在devDependencies中) - 我的问题有点不同,虽然在VS 2017中添加webpack作为预构建步骤时,我认为VS是足够聪明的本地找到没有完整路径的webpack cmd – JimiSweden

+0

@JimiSweden您是否尝试添加'node_modules \ .bin'到_tools->配置外部工具_ –

npm install -g webpack-dev-server将解决您的问题

更好的解决方案。

这总是有效,它对我很有用。尝试下面的命令。

npm install -g webpack 
+0

它帮助我谢谢 –

+13

我认为应该指出的是,使用-g全局安装webpack,如果您有多个可能需要不同版本的webpack的项目,则可能不需要这些。 –

只需以管理员身份运行命令行(cmd)即可。

将webpack命令添加为package.json中的npm脚本。

{ 
    "name": "react-app", 
    "version": "1.0.0", 
    "scripts": { 
     "compile": "webpack --config webpack.config.js" 
    } 
} 

然后运行

NPM运行编译

当的WebPack安装它创建./node_modules/.bin文件夹中的二进制文件。 npm脚本也查找在此文件夹中创建的可执行文件

我遇到了同样的问题,只是将代码块添加到我的package.json文件中;

"scripts": { 
    "build": "webpack -d --progress --colors" 
} 

然后在终端上运行命令;

npm run build 
+0

这对我有用。感谢分享。 –

有时NPM安装-g的WebPack不正确保存。最好使用npm install webpack - 保存。它为我工作。

+0

-g在全局安装(不是你本地的项目node_modules + package.json),而--save在本地安装(在你的本地node_modules + package.json中),所以这个答案是错误的。 –