跨平台NPM启动脚本
我正在构建一个电子应用程序,它将由Windows和OS X上的人们开发。我想创建一个跨平台的开始脚本。到目前为止,我完全没有运气得到有效的东西。我认为问题在于,我需要设置跨平台NPM启动脚本,npm,electron,Npm,Electron,我正在构建一个电子应用程序,它将由Windows和OS X上的人们开发。我想创建一个跨平台的开始脚本。到目前为止,我完全没有运气得到有效的东西。我认为问题在于,我需要设置NODE\u ENV环境变量,并且语法略有不同 我希望有一种我还没有找到的方法。我当前的脚本部分如下: "scripts": { "start:osx": "NODE_ENV=development electron ./app/", "start:win": "set NODE_ENV=development
NODE\u ENV
环境变量,并且语法略有不同
我希望有一种我还没有找到的方法。我当前的脚本部分如下:
"scripts": {
"start:osx": "NODE_ENV=development electron ./app/",
"start:win": "set NODE_ENV=development && electron ./app/"
}
我真的很想创建一个“开始”脚本,并消除特定于平台的变体。可能吗?环境变量在Windows中是个问题 正如Domenic Denicola(npm的主要贡献者之一)所述: 这不是npm的工作。如果愿意,可以使用process.env运行自定义节点脚本来设置环境变量,也可以使用非环境变量(如JSON)的内容 您可以编写自定义脚本来绕过connect的限制,例如在测试中修改process.env (参考资料:) 因此,我们将通过一个JS脚本(受此启发的解决方案)进行管理:
scripts
目录中创建exec.js
文件
exec.js
中复制以下代码:
var exec=require('child_process')。exec;
var命令行='electron./app/';
var environ=(!process.argv[2].indexOf('development'))?'发展:"生产",;
如果(process.platform==='win32'){
//诀窍:https://github.com/remy/nodemon/issues/184#issuecomment-87378478(只是不在NODE_ENV变量后面添加空格,直接添加到&&:)
命令行='设置节点环境='+environ+'&&'+command行;
}否则{
命令行='节点环境='+环境+''+命令行;
}
var command=exec(命令行);
command.stdout.on('data',函数(data){
进程.标准输出.写入(数据);
});
命令.stderr.on('data',函数(data){
进程.stderr.write(数据);
});
command.on('error',function(err){
进程.stderr.write(err);
});
包.json
:“脚本”:{
“开始”:“节点脚本/exec.js开发”,
}
npm运行开始
有一个非常有用的npm包,允许管理此问题:。运行跨平台设置环境变量的命令感谢您的全面回答。我大概一天左右都没有机会测试它,但在这段时间内,我会提高投票率,因为这看起来是解决问题的好办法。一旦我知道一切进展顺利,我会把它作为答案。再次感谢!