请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

在不使用webpack的情况下,打包时如何区分测试环境和正式环境?

1.在package.json中图片描述
2.我在主进程main.js中图片描述
结果是,在运行npm run dev 中可以拿到process.env.NODE_ENV,但是打包后,项目直接无法被打开

正在回答 回答被采纳积分+3

2回答

张轩 2020-07-21 15:48:26

同学你好 对不起 你的回复提醒我没有看到,

其实有更简单的方法。刚才我试了一下

在开发环境中,你可以使用 cross-env 设置环境变量  这个你做到是没问题的 

cross-env NODE_ENV=test electron .

这时候在代码中 main.js 中拿到 process.env.NODE_ENV 是等于你设置的值(test)的。

当打包的时候,

"pack": "electron-builder --dir",
"dist": "electron-builder",

就是运行 electron-builder 的时候(不需要加任何参数),它这个 process.env.NODE_ENV 会自动的帮你设置成 production。就这样我们就区分了开发环境和打包环境。

其实更简单的方法就是使用 我课中使用的 electron-is-dev 这个库

const isDev = require('electron-is-dev')
const urlLocation = isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, './index.html')}`




0 回复 有任何疑惑可以回复我~
  • 提问者 慕仙6119268 #1
    我可以区分开发环境和生产环境的,现在是要有个测试服给测试同事去测,不希望每次打包的时候手动更改api
    回复 有任何疑惑可以回复我~ 2020-07-28 09:14:54
张轩 2020-07-14 09:33:54

同学你好 

electron builder 可以支持环境变量,文档在这里:https://www.electron.build/configuration/configuration#environment-variables-from-file

简单来说就是在文件夹下创建 electron-builder.env  文件。以这种格式书写

https://github.com/motdotla/dotenv-expand/blob/master/test/.env

0 回复 有任何疑惑可以回复我~
  • 提问者 慕仙6119268 #1
    这样的话,我package.json里如何针对不同的环境做命令区分尼?还有就是我main.js里如何获取到在electron-builder.env的环境变量,这个文档这是提了一下这个文件怎么写
    回复 有任何疑惑可以回复我~ 2020-07-15 11:22:33
  • 提问者 慕仙6119268 #2
    老师,可以解答一下吗?
    回复 有任何疑惑可以回复我~ 2020-07-21 11:59:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信