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可执行文件,但这对我来说似乎相当合理).
对我来说最快的方法是在 package.json 脚本中引用 powershell,如下所示:
"copyFile": "@powershell copy './source/package.json' './deploy'",
Run Code Online (Sandbox Code Playgroud)
如果您在 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 命令