Sco*_*pia 10 reactjs electron electron-builder dotenv
我正在构建一个 Electron、React 应用程序,我需要一个dotenv
文件。在代码中,我调用我的变量,process.env.variable
这些变量在开发中工作得很好。
然而,一旦与 一起分发electron-builder
,则dotenv variables
不再起作用 ( undefined
)。
我现在的问题是,是否可以做到这一点?如果可以,怎么做?我试图在互联网上找到解决方案,但似乎人们并没有真正面对这个问题。
小智 0
不确定这个问题是否仍然有效,但如果有人有同样的问题,这是我得到的。如果您使用的是electron-builder
,目前本机不支持此功能。
ENVS 不会加载到可分发版本中,因为 electro-builder 是一个打包器,而不是捆绑器。ENV 仅在配置打包步骤时加载。(来自 eletron-builder 合作者)
https://github.com/electron-userland/electron-builder/issues/7143
但这并不意味着没有任何其他方法,这是我解决此问题的肮脏方法,我创建了一个脚本来替换用于electron-builder build --publish
.
我正在使用 React 样板,它在您所尊重的框架上可能有所不同。因此,我创建了一个脚本来替换 env,当app/dist/main/main.js
webpack 完成将我的 TS 转换为 JS 文件时,它应该在eletron-builder
bash 行执行之前。
这是我所做的详细信息:
文件夹结构
app
scripts(self-created)
packageEnv.js
...
Run Code Online (Sandbox Code Playgroud)
package.json
:
"scripts": {
"build": "concurrently \"npm run build:main\" \"npm run build:renderer\"",
"package:env": "node ./scripts/packageEnv.js",
"build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.prod.ts",
"build:renderer": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.prod.ts",
"package": "ts-node ./.erb/scripts/clean.js dist && npm run build && npm run package:env && electron-builder build --publish never",
"rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir release/app",
},
Run Code Online (Sandbox Code Playgroud)
代码packageEnv.js
(它非常脏,我建议阅读并重构它)。TODO
也放了一些在那里。
app
scripts(self-created)
packageEnv.js
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3806 次 |
最近记录: |