2016-03-11 128 views
15

我正在学习React并通过npm安装webpack到我的项目目录,但即使我可以看到安装在我的项目中的webpack,zsh仍未找到该命令。我使用npm init --yes后跟npm install --save webpackZsh:命令未找到:webpack

回答

16

全局安装。

npm i -g webpack 

如果你将与工作的WebPack,安装的WebPack-dev的服务器太

npm i -g webpack-dev-server 

我建议你先学习一些关于NPM然后的WebPack。你会挣扎很多。 然后我建议不要使用webpack。我发现它像凉亭一样多余。 我坚持我的gulp构建和npm。 其实NPM确实有点难以确定。 Gulp使它变得更容易。

+6

根据文档:这不是推荐的做法。 https://webpack.js.org/get-started/install-webpack/ –

+0

@HelmutGranda事情可能会改变。 – atilkan

1

在我的情况下,我有这个问题与webpack,grunt和gulp,似乎我的问题是权限问题。

我在全球安装了webpack和grunt。然而,即使这样,$ webapack或$ grunt导致命令未找到

问题是,npm安装了需要root权限的/ usr/local/lib/node_modules全局包。

因此,为了避免必须使用root权限,我将全局包的安装目录更改为$ HOME中的目录。要做到这一点,我遵循这个指南:

Install npm packages globally without sudo on macOS and Linux

在这之后,我又在全球范围(这个时候没有sudo)安装的WebPack和呻吟,证实他们已经安装在我的新目录中。

现在,我可以运行没有问题!

$的WebPack

$咕噜

7

安装节点模块全球是一个快速解决方案,但我建议增加./node_modules/.bin到路径变量并重了解,问题是什么。

执行

~ export PATH="./node_modules/.bin:$PATH" 

之后,您可以简单地在项目中使用本地安装的所有软件包。 也可以执行像mochaeslint这样的命令,而无需全局安装这些软件包。 有几个很好的解释可能也读这answer

+0

不要这样做......把相对路径放在你的$ PATH变量中是一个安全漏洞。 请参阅http://stackoverflow.com/a/9683472/1521572 – WrksOnMyMachine

8

具有的WebPack本地安装,你也可以使用:的

$(npm bin)/webpack 

代替:

./node_modules/.bin/webpack 
4

没有必要的WebPack全球安装。

试试我的方法:

首先,在你的package.json文件中,补充一点:

"scripts": { 
    "start": "webpack" 
}, 

然后,在你的终端,运行

$npm start 

另一种快速的方法: 只是运行(是的,这是'npx')

$npx webpack 

就是这样。