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

时间:2016-08-09 19:13:39

标签: javascript node.js

我正在尝试在我的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文件夹。这些脚本全新,任何想法如何解决?感谢任何建议,谢谢!

4 个答案:

答案 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'",