npm脚本,捆绑时将package.json复制到dist

ajm*_*jma 12 javascript node.js

我想在我的npm bundle脚本中添加第二部分.第一部分运行得很好,但是我试图将3个文件与bundle一起复制.

所以现在我有:

"bundle": "NODE_ENV=production webpack --output-file bundledFile.js && cp package.json dist/",
Run Code Online (Sandbox Code Playgroud)

这些NODE_ENV=production webpack --output-file bundledFile.js作品本身很棒.不工作的部分是&& cp package.json dist/,我希望脚本将我的package.json(以及其他2个文件实际上,但只是从这一个开始)复制到dist文件夹.这些脚本全新,任何想法如何解决?感谢任何建议,谢谢!

dvl*_*lsg 21

语法应该工作(似乎,看看你的评论).我建议将你的npm脚本分成多个点,但是:

{
  "bundle": "NODE_ENV=production webpack --output-file bundledFile.js",
  "copy": "cp package.json dist/ && cp README.md dist/ && cp .npmrc dist/",
  "build": "npm run bundle && npm run copy"
}
Run Code Online (Sandbox Code Playgroud)

为了跨平台兼容(cp通常不适用于Windows),我也建议增加一个构建文件的地方,例如./tools/copy-distrubution-files.js它会利用fs复制必需的文件,然后把它与故宫的脚本node ./tools/copy-distribution-files.js.这将(大部分)与平台无关(你仍然必须假设它node可以作为nodejs可执行文件,但这对我来说似乎相当合理).

  • 如果您想支持跨OS环境,请使用[ncp](https://www.npmjs.com/package/ncp)代替`cp` (3认同)

Dus*_*ler 8

对我来说最快的方法是在 package.json 脚本中引用 powershell,如下所示:

"copyFile": "@powershell copy './source/package.json' './deploy'",
Run Code Online (Sandbox Code Playgroud)

  • 你救了我免于自杀 (4认同)

Isr*_*Gab 6

如果您在 Windows 上运行,请使用以下命令:

"copy": "copy \"package.json\" \"dist\" && copy \"README.md\" \"dist\" && copy \".npmrc\" \"dist\""
Run Code Online (Sandbox Code Playgroud)

复制而不是cp。不要忘记对每个路径使用“” (在引用的命令中使用\转义它们)。如果您需要定义长路径,请不要使用 /(斜杠)而是 \(反斜杠)

喜欢:

copy "devices\\VS-88UT\\index.html" "devices\\VS-88UT\\dist"
Run Code Online (Sandbox Code Playgroud)

另外,如果您愿意,有一个不错的插件可以在每次构建之前和之后运行 bash 命令

  • 这不是有效的 JSON。您能否清理一下引号,以便我可以轻松地将其粘贴到我的 package.json 中 (2认同)