Zsh: 找不到命令:webpack

23

我正在学习React,并通过npm将webpack安装到我的项目目录中,但是zsh未找到该命令,尽管我可以看到webpack已安装在我的项目中。我使用了npm init --yes,然后使用npm install --save webpack

6个回答

25

没有必要全局安装webpack。

试试我的方法:

首先,在你的package.json文件中加入以下内容:

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

然后,在您的终端中运行

$npm start

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

$npx webpack

就这些。


20

编辑:不要这样做,这是一种不好的做法。

简单的方法。全局安装它。

npm i -g webpack

如果你将要使用webpack,也请安装webpack-dev-server

npm i -g webpack-dev-server

我建议您先学习一些关于npm,然后再学习webpack


16
根据文档:这不是推荐的做法。https://webpack.js.org/get-started/install-webpack/ - Helmut Granda
@HelmutGranda 事情可能已经发生了变化。 - atilkan
4
它没有改变。Webpack文档仍建议不要全局安装。 - Ralph David Abernathy
1
@atilkan 这不会改变;像 webpack 这样的全局安装是非常糟糕的实践。Webpack 的配置是基于每个项目的,有很好的理由,你真的不想使用除了在项目 package.json 中预先测试过的版本之外的 webpack 版本。这样做可能会导致损坏的包。当使用多个包时,由于不同的配置,您可能会遇到它们需要互斥版本号的情况,这是无法通过全局完成的。 - Vala
@Thor84no 我同意。当我写下解决问题的答案时,那可能是zshell的问题。 - atilkan

10

如果您本地已经安装了webpack,也可以使用以下命令:

$(npm bin)/webpack

替代方案:

./node_modules/.bin/webpack

9
安装全局Node模块是一个快速解决方案,但我建议将./node_modules/.bin添加到路径变量中并尝试理解问题所在。
执行:
~ export PATH="./node_modules/.bin:$PATH"

接下来,您可以在项目中简单地使用所有本地安装的软件包。同时,您可以执行mochaeslint等命令,而无需全局安装这些软件包。这里有一些很好的解释,也许您可以阅读此答案


1
不要这样做...在$PATH变量中放置相对路径是一个安全漏洞。请参见https://dev59.com/9Wkw5IYBdhLWcg3wu9Fh#9683472。 - WrksOnMyMachine

2
在我的情况下,我在webpack、grunt和gulp上遇到了这个问题,似乎我的问题是权限问题。
我全局安装了webpack和grunt。然而,即使如此,$ webpack或$ grunt仍会显示命令未找到 问题在于npm将全局包安装到了需要root权限的/usr/local/lib/node_modules。
因此,为了避免使用root权限,我将全局包的安装目录更改为$HOME中的一个目录。为此,我按照这个指南进行操作: 在macOS和Linux上全局安装npm包而不需要sudo 之后,我再次全局安装webpack和grunt(这次不带sudo),并验证它们已经安装在我的新目录中。
现在,我可以正常运行了!

$ webpack

$ grunt


0

如果您使用的是Windows,尝试将%USERPROFILE%\Appdata\Roaming\npm添加到您的路径中,然后重试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接