NodeJS 有人能解释一下npm package.json脚本的用法吗?

mu0hgdu0  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(88)

我有一些非常旧的代码,我正在经历,并有麻烦找到一个解释,为什么它不再工作在线。我们使用的节点版本可能早于16.x,我们使用的是cross-conf-env@1.1.2和env-cmd@5.1.0。
在我们的package.json中,我们有这样的脚本:

{
  "name": "my-package",
  "scripts": {
    "build": "cross-conf-env env-cmd npm_package_config_target webpack ...",
    "start": "npm run build --my-package:target=development && <start cmd>",
  } 
}

字符串
我的问题是关于开始的剧本。看起来我们在这里所做的似乎是以某种方式配置一个值,然后cross-conf-env可以替换。但是从我所读到的关于cross-conf-env的内容来看,它实际上只是从你的package.json或环境变量中阅读值,但是我们在过去从来没有任何设置。它似乎总是通过npm run参数设置的。例如“--my-package:target=development”
现在我已经删除了cross-conf-env的用法,因为它只用于修改单个构建脚本,而不是每个环境一个。
任何关于这种用法的知识都将是有帮助的。- 谢谢-谢谢

vm0i2vca

vm0i2vca1#

它看起来像package.json中的start脚本,使用cross-conf-env为构建配置一个值,特别是npm_package_config_target变量,然后env-cmd将使用该变量在使用webpack运行构建之前设置环境。所以基本上,当你运行npm run start时,它会触发start脚本。而后者又运行构建脚本。构建脚本使用cross-conf-env为npm_package_config_target变量设置一个临时值,该值特定于构建过程。env-cmd包读取cross-conf-env设置的npm_package_config_target的临时值,并使用它为构建过程设置适当的环境。例如开发环境。构建过程(包括webpack)使用env-cmd设置的环境配置运行。

相关问题