上文件代码,具体代码最后有地址。
**问题已经解决,代码已经可用,有需要的可参考。
请为被采纳者点赞。
有更好的方法,请回复。**
.env
DB_HOST=localhost
DB_NAME=TEST
DB_USER=root
DB_PASS=tttttt
port=3306
DOMAIN_WWW=www.domain.com
DOMAIN_API=api.domain.com
gulpfile.js
const {src, dest, parallel, series, task} = require("gulp");
require('dotenv').config({
path: './env/.env'
})
const json = {
host: process.env.DB_HOST,
databaseName: process.env.DB_NAME,
username: process.env.DB_USER,
password: process.env.DB_PASS,
port: process.env.port
}
const test = (done) => {// OK
console.log(json)
done()
}
const outfile_test = (done) => {// 让生成到 dist 目录下的 test.js 文件,可以直接在浏览器客户端使用
src('./src/test.js')
.pipe(dest('./dist/'))
done()
}
exports.test = test
exports.outfile_test = outfile_test
common.js
export const domain = {
'www': 'www.domain.com',
'api': 'api.domain.com',
}
export const envDomain = [
{
'www': process.env.DOMAIN_WWW,
'api': process.env.DOMAIN_API,
}
]
test.js
import {domain, envDomain} from "./common";
function funTest() {
console.log(domain);
console.log(domain.www);
console.log(envDomain);
console.log(envDomain.www);
}
function funTest_2() {
const www = process.env.DOMAIN_WWW;// 让生成的文件中,这2个值变成 env 文件中对应的值
const api = process.env.DOMAIN_API;// 让生成的文件中,这2个值变成 env 文件中对应的值
console.log(www);
console.log(api);
}
代码地址 https://github.com/ZhangCheng...
问如何能让打包出来的js文件中的 env 变量成为对应的值?
目标就是让js文件中的一些变量可以有env文件控制。
本质上就是字符串替换,怎么在构建时从环境变量文件里读取看来你已经会了,那剩下的就是在构建时把源文件里特定的字符串替换掉了。
上面代码仅作思路参考,请根据自己的实际情况改写。