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

来源:10-4 云文件操作类编码(一)

慕仙6119268

2020-07-13

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

写回答

2回答

张轩

2020-07-21

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

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

在开发环境中,你可以使用 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
1
慕仙6119268
我可以区分开发环境和生产环境的,现在是要有个测试服给测试同事去测,不希望每次打包的时候手动更改api
2020-07-28
共1条回复

张轩

2020-07-14

同学你好 

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
2
慕仙6119268
老师,可以解答一下吗?
2020-07-21
共2条回复

2024更新 Electron+React+七牛云实战跨平台桌面应用

开发一款自动云同步的 Markdown 文件管理软件

1258 学习 · 464 问题

查看课程