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指令