npx 但使用包 json 中的版本

jok*_*arl 6 npx

我在 javascript 项目中有一个构建脚本,它使用 Parcel 来迭代文件夹并查找索引文件,然后构建这些项目。当我找到索引文件时,我运行以下命令:

npx parcel build ${indexFilePath} --out-dir ${outDir} --target node

但是,如果运行此构建脚本的人尚未安装软件包npm i,则 npx 命令将安装最新版本的 Parcel-bundler,其中 --out-dir 现已弃用并破坏整个脚本。

这是正在发生的事情,经过蒸馏:

$ rm -rf node_modules
$ npm i
$ npx parcel --version
1.12.4
$ rm -rf node_modules
$ npx parcel --version
2.0.0-beta.2
Run Code Online (Sandbox Code Playgroud)

npx 是否有任何选项可以使用项目中已有的 package.json 文件中的版本并将其安装到 node_modules 中?或者我只是将安装步骤整合到我的构建中?这似乎有点矫枉过正,因为我需要建造的只是包裹。

我这样使用 npx 是否滥用了它?

Fré*_*ric 4

npx关于此问题存在多个问题: #199#15

到目前为止,我发现的唯一选择是使用noderepl 从我的 package.json 中解析和提取版本(在您的情况下应该可用)

像这样的东西:

npx parcel@`node -p -e "require('./package.json').dependencies['parcel']"` --version
Run Code Online (Sandbox Code Playgroud)