我正在尝试在我的npm捆绑脚本中添加第二部分。第一部分运行得很好,但我试图将3个文件与包一起复制。
现在我有:
"bundle": "NODE_ENV=production webpack --output-file bundledFile.js && cp package.json dist/",
NODE_ENV=production webpack --output-file bundledFile.js
本身很有效。不起作用的部分是&& cp package.json dist/
,我希望脚本将我的package.json(以及其他两个文件实际上,但只是从这一个开始)复制到dist文件夹。这些脚本全新,任何想法如何解决?感谢任何建议,谢谢!
答案 0 :(得分:18)
语法应该有效(并且似乎在看你的评论)。我建议将你的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"
}
为了实现跨平台兼容(Windows上通常不提供cp
),我还建议在某个地方添加一个构建文件,例如./tools/copy-distrubution-files.js
,它会使用fs
} copy the necessary files,然后使用node ./tools/copy-distribution-files.js
在npm脚本中调用它。这将(通常)与平台无关(您仍然必须假设node
可用作nodejs可执行文件,但这对我来说似乎相当合理。)
答案 1 :(得分:0)
如果您在Windows上运行,请使用以下命令:
"copy": "copy "package.json" "dist" && copy "README.md" "dist" && copy ".npmrc" "dist"
复制而不是cp。 不要忘记为每个路径使用 “” 。如果需要定义长路径,请不要使用/(斜杠),而应使用\(反斜杠)
喜欢:
copy "devices\\VS-88UT\\index.html" "devices\\VS-88UT\\dist"
此外,如果您更愿意nice plugin在每次构建之前和之后运行bash命令
答案 2 :(得分:0)
要在Windows中复制文件夹和文件,只需使用
xcopy git\\* dist\\ /e /i /h
我认为这可能会对某人有所帮助。
答案 3 :(得分:0)
对我而言,最快的方法是在package.json脚本中引用如下所示的powershell:
"copyFile": "@powershell copy './source/package.json' './deploy'",