通过package.json脚本运行Windows Comman_Prompt命令

时间:2018-02-22 13:33:07

标签: node.js reactjs npm command-line package.json

我需要在命令行(cmd)

中运行
  

npm run build

之后,我需要运行

  

xcopy C:\ fileOne C:\ fileTwo

但是,我想只运行一个命令并执行上述两个命令。 所以我想也许我的 package.json 应该是这样的:

 "scripts": {
       "build": "react-scripts build",
       "copy": "xcopy C:\path\firstFile C:\path\secondFile",
       "zack": "npm run build && npm run copy",
 },

基于这个想法:

"scripts": {
       "a1": "command1",
       "a2": "command2",
       "zack": "npm run a1 && npm run a2",
 },

然后我可以在命令行中运行:

  

npm run zack

但我没有成功实现目标

(我这样做的原因是:我想在SubliteText 3(HTML JS CSS)中更改源代码并自动在Eclipse中发送(复制粘贴)(在其他一些项目中))< / p>

我想这样做:

enter image description here

我的主要问题是如何将本地目录路径放在package.json文件中的字符串中。

2 个答案:

答案 0 :(得分:1)

您应该编写一个脚本文件来处理它,而不是直接在package.json中编写命令。

这样的东西
var fs = require('fs');
fs.createReadStream('PATH_TO_FILE_ONE').pipe(fs.createWriteStream('PATH_TO_NEW_FILE'));

将上述脚本保存为类似afterBuild.js

的内容

并在你的package.json中只做zack为npm run build && node afterBuild.js

答案 1 :(得分:0)

我安装了npc模块:

  

npm install ncp -g

     

npm install ncp --save

然后我创建了一个文件: afterBuild.js ,我在里面插入了这段代码:

var ncp = require("ncp");
ncp("C:/directory/file.txt", "C:/destination/directory/file.txt", callback);
function callback(){} //empty function, I don't need it for the start

并在 package.json 中写道:

 "scripts": {
       "build": "react-scripts build",
       "zack": "npm run build && node afterBuild.js"
 },

我从命令行运行它,如:

  

npm run zack