你需要的是使用npm
的能力。
npm
本身属于nodejs
的一个模块,所以你问题其实可以分成两个来问。
1,如何在客户机上静默安装nodejs
并设置好相应的环境变量。
2,如何以编程方式启动npm
。
第一种方式跟平台紧密相关,实现以及后续维护都比较繁琐,好处是有一个完整独立的nodejs
环境。
因为electron
自身集成了nodejs
,让第二种方法成为可能。
给你一个简单的例子
首先在你electron
项目中本地安装npm
npm install npm
之后就可以在业务代码中像普通模块一样使用npm
了
const { writeFileSync, mkdirSync, existsSync } = require("fs");
const { resolve } = require("path");
const npm = require("npm");
const { homedir } = require("os");
// 建立一个目标文件夹, 并切换到此路径
const dest = resolve(homedir(), "test");
if (!existsSync(dest)) mkdirSync(dest);
process.chdir(dest);
// 写入package.json
writeFileSync(
resolve(dest, "package.json"),
JSON.stringify({
scripts: {
test: "echo hello npm",
},
})
);
npm.load({}, (err) => {
// npm run
npm.run("test");
// npm install
npm.commands.install(["typescript"], (err) => {
console.log(err || "done");
});
});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…