我有一个JavaScript应用程序,我正在捆绑webpack。根据文档,我正在使用此命令开始捆绑:
npx: installed 1 in 2.775s
每次我得到这个输出:
./node_modules/.bin
我已经验证了webpack命令存在于我的TRANSFORM Sum(Format([Chg_TtlElecChg],"Currency")) AS Expr2
SELECT (Format([Date],"mmm"" '""yy")) AS Expr1
FROM xtblRate_Calc
WHERE (((xtblRate_Calc.Name)="GSD" OR (xtblRate_Calc.Name)="GSDT")
AND (((Year([Date])*12+Month([Date])-1))<>""))
GROUP BY (Year([Date])*12+Month([Date])-1), (Format([Date],"mmm"" '""yy"))
ORDER BY Year([Date]), Month([date])
PIVOT xtblRate_Calc.Name;
目录中,其中npx正在查找。谁能想到为什么每次下载webpack?完成此步骤最多可能需要7秒钟,这会减慢我的构建速度。
答案 0 :(得分:1)
您是否尝试安装webpack-cli?
npm i webpack-cli -D
然后运行
npx webpack
答案 1 :(得分:0)
npx
不会重复使用以前安装的软件包,而是在每次运行它时都会拉下该软件包的依赖关系。
答案 2 :(得分:0)
我同意laggingreflex。可能不是每次都安装在您的机箱中的 webpack
。参考this issue,时间差不多。我认为它不适用于较新的版本。
other answer 具有误导性,或者至少我不太了解它的上下文。
引用 the readme:
<块引用>从本地 <command>
或中央缓存执行 node_modules/.bin
,安装运行 <command>
所需的任何包。
默认情况下,npx
将检查 <command>
是否存在于 $PATH
或本地项目二进制文件中,并执行它。如果未找到 <command>
,则会在执行前安装。
引用 release blog:
<块引用>npx
如果调用已经安装好的二进制文件,基本上没有开销 — 将工具的代码直接加载到当前运行的节点进程中已经足够聪明了!
当 npx <command>
不在您的 <command>
中时调用 $PATH
会自动为您安装 npm
注册表中具有该名称的软件包,并调用它。完成后,安装的包将不会在您的全局变量中的任何位置,因此您不必担心长期污染。
虽然上面引用的npx
作为一个单独的包现在已经弃用了,npx
现在是npm-cli
的一部分,但是本质还是一样的,也可以通过official docs:
此命令允许您从 npm
包(本地安装或远程获取)运行任意命令。
如果本地项目依赖项中不存在任何请求的包,则将它们安装到 npm
缓存中的文件夹中,该文件夹在执行的进程中添加到 PATH
环境变量中。< /p>