uniapp用脚手架搭建的应用打包如何区分开发环境和生产环境,就比如我创建了.env.dev和.env.prod文件,打包成app的时候怎么识别prod文件
时间: 2024-12-18 07:31:52 浏览: 17
在uniApp中,为了区分开发环境(dev)和生产环境(prod),通常会使用环境变量来控制不同的配置。`.env.dev` 和 `.env.prod` 文件就是用来存储这种环境特定的配置信息,例如API地址、密钥等。
在打包应用之前,你需要在项目中设置一个自动化构建工具(如Webpack或Vite),并通过它读取环境变量。uniApp提供了一个叫做`uni-simple-node-config-loader`的插件,可以帮助处理这种情况。这个插件会在运行时检查是否有名为`process.env.NODE_ENV`的环境变量,如果存在并且值为`production`或`prod`,则加载`.env.prod`文件,否则加载`.env.dev`。
以下是简单的步骤:
1. 安装`uni-simple-node-config-loader`:`npm install uni-simple-node-config-loader`
2. 在`config/index.js`或其他适当的配置文件中配置环境加载:
```javascript
const { createUniConfig } = require('@dcloudio/uni-cli-shared');
const nodeConfigLoader = require('uni-simple-node-config-loader');
module.exports = createUniConfig({
// 其他配置...
chainWebpack(config) {
if (process.env.NODE_ENV === 'production') {
config.module.rule('node-config')
.test(/\.env$/)
.use(nodeConfigLoader())
.loader('uni-simple-node-config-loader');
}
},
});
```
3. 分别在`.env.dev`和`.env.prod`中定义对应的环境变量,例如:
```bash
# .env.dev
API_URL=http://localhost/api
SECRET_KEY=development_secret
# .env.prod
API_URL=https://api.example.com
SECRET_KEY=production_secret
```
4. 当打包应用时,通过设置构建命令,传递环境变量,比如:
- 开发环境:`uni build -d -e dev`
- 生产环境:`uni build -p -e prod`
这样,根据传入的`NODE_ENV`环境变量,打包工具会选择相应的环境配置文件来打包应用。
阅读全文