我正在尝试添加第二部分到我的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(实际上还有其他2个文件,但只是从这个文件开始)复制到dist文件夹。全新的这些脚本,任何想法如何修复?感谢任何建议,谢谢!
5条答案
按热度按时间cdmah0mi1#
语法应该可以工作(看你的评论,似乎可以)。不过,我建议将你的npm脚本拆分到多个点:
为了实现跨平台兼容(
cp
通常在windows上不可用),我还建议在某处添加一个构建文件,例如./tools/copy-distrubution-files.js
,它将使用fs
到copy the necessary files,然后在npm脚本中使用node ./tools/copy-distribution-files.js
调用它。这将是(大部分)平台独立的(你仍然必须假设node
作为nodejs可执行文件可用,但这对我来说似乎是相当合理的)。mpbci0fu2#
对我来说,最快的方法是在package.json脚本中引用powershell,如下所示:
nnsrf1az3#
如果你在Windows上运行,使用以下命令:
复制而不是cp。不要忘记对每个路径使用***""***(在引用的命令中使用******对它们进行转义)。如果你需要定义一个长路径,不要使用/(斜杠),而要使用\(反斜杠)
例如:
另外,如果您喜欢nice plugin在每次构建之前和之后运行bash命令
flvlnr444#
要在windows中复制文件夹和文件,只需使用
我想这可能对某人有帮助。
5ssjco0h5#
使用节点
使用Node.js内置的功能,而不是依赖于shell命令,这些命令在每个操作系统上都不可用,这是一条正确的道路。出于这个原因,应避免本页上的所有其他答案。
使用当前的Node.js版本,可以使用
fs.copy
复制文件和文件夹。将其与node -e "javascript code goes here"
结合,可以编写简短的跨平台npm脚本。将
/assets
文件夹复制到/build/assets
文件夹。