我有一个与 webpack 捆绑的 JavaScript 应用程序。根据文档,我正在使用此命令开始捆绑:
npx webpack
每次我得到这个输出:
npx: installed 1 in 2.775s
我已经验证了 webpack 命令存在于我./node_modules/.bin
正在查找 npx 的目录中。谁能想到为什么每次都下载webpack?完成此步骤最多可能需要 7 秒,这会减慢我的构建速度。
npx
不会重用以前安装的包,而是在每次运行时拉下该包的依赖项。
我同意laggingreflex。可能不是webpack
每次都在您的情况下安装它。参考这个问题,大约是同一时间。我认为它不适用于较新的版本。
另一个答案具有误导性,或者至少我不太了解它的上下文。
引用自述文件:
<command>
从本地或中央缓存执行node_modules/.bin
,安装运行所需的任何包<command>
。
默认情况下,
npx
将检查是否<command>
存在于$PATH
或本地项目二进制文件中,然后执行。如果<command>
没有找到,它将在执行之前安装。
引用发布博客:
npx
如果调用已经安装的二进制文件,基本上没有开销——将工具的代码直接加载到当前运行的节点进程中就足够聪明了!
调用
npx <command>
when<command>
is not already in your$PATH
will自动npm
为你从注册表中安装一个具有该名称的包,并调用它。完成后,已安装的包将不会在您的全局变量中的任何位置,因此您不必担心长期污染。
虽然上面npx
作为单独的包引用的内容现在已弃用,npx
现在是 的一部分npm-cli
,但本质还是一样的,也可以通过官方文档进行验证:
npm
此命令允许您从包(本地安装或远程获取)运行任意命令。
如果本地项目依赖项中不存在任何请求的包,则将它们安装到
npm
缓存中的文件夹中,该文件夹将添加到PATH
执行过程中的环境变量中。