node.js 自动化生成实例 一

node.js spwan和exec

目标拷贝node执行环境,配置node arch位x86和x64
最终生成electron.node的二进制文件

const {spawn}  = require('child_process');
const path = require('path');
const fs = require('fs');
const node_module_dst = path.join(process.cwd(), "node_modules_x86.zip");
const unzip_node_module_dst = path.join(process.cwd(), "node_modules");
const node_module_src = path.join(process.cwd(), "../node_modules_x86.zip");    //压缩解压
var outputDir = process.cwd();

//解压zip文件
function unzipOneFile(filePath) {
  let cmd = 'unzip'
  let param = ['-oq', filePath, '-d', outputDir];
  spawn(cmd, param);
}
//拷贝文件生成
function copyFile(srcPath, dstPath) {
  let cmd = 'cp'
  let param = [srcPath, dstPath];
  spawn(cmd, param);
}

if (!fs.existsSync(node_module_dst)) {
  logger.error("zip file is not exist");
  const spawnObj = spawn('cp', [node_module_src, node_module_dst], {encoding: 'utf-8'});
   spawnObj.stdout.on('data', function(chunk) {
    console.log(chunk.toString());
  });  
  spawnObj.stderr.on('data', (data) => {
    console.log(data);
  });
  spawnObj.on('close', function(code) {
    console.log('close code : ' + code);
  })
  unzipOneFile(node_module_dst);
} else {
  unzipOneFile(node_module_dst);
}

var exec = require('child_process').exec;
exec('npm install',function (error, stdout, stderr) {
  if (error !== null) {
   console.log('exec error: ' + error);
  }
});

var reg = /;/;  
var string =  process.env.Path
console.log(string)
var arch =  process.arch
console.log(arch)
webpack

目的是通过一键执行,打包js文件以及对应的依赖程序,方便html 文件引入对应打包好的.js 文件;
执行npm config set prefix + 目录 依赖安装路径
npm init --yes 初始化package.json 文件
npm install 会根据package.json下载对应的不同版本的依赖模块
wepack一键执行也可以通过在webpack.config.js里面通过脚本script配置命令一键之间,最后通过npm run [] 对应的标签执行。
最后遇到有webpack.config.js的文件目录,一般是通过分析入口函数来确定对应的调用关系
可以通过cmakefilelist.txt 中的配置文件excute_process来调用对应目录下的js文件,并添加入口参数config.js文件,来执行一系列列js指令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值