vvts-ambiences
v1.0.0
Published
多环境webpck、vite plugins配置生成当前环境配置
Readme
多环境webpck\vite plugins配置生成当前环境配置(解决多余IP暴露引起的安全性问题)。
Install
$ npm install -D @vvts/ambiences
// or
$ yarn add -D @vvts/ambiencesUsage
Via .ambiences (Recommended)
[[XXX]]环境名称,与package.json中scripts--mode NODE_ENV匹配[xxx]配置名字,后期系统中调用需要。xxx=xxx详细配置
多个环境配置的情况下,这个格式不断重复调整环境参数。
在非build 或者 NODE_ENV=production 并且 outDir 不为空的情况下都会在 outDir 目录下创建对应配置文件可作为外部引入文件处理。
.ambiences
[[dev]] // 环境配置名称
[api] // 参数名称
requestURL = "xxx.xxx.test"
[config] // 参数名称
systemName = "DevTest"
requestURL = "xxx.pro.test"
[[production]]
[api]
requestURL = "xxx.pro.test"
[config]
// 系统名称
qasd = "系统名称"
systemName = "Test";
iiii = 123123
isTre = truepackage.json
{
……
"scripts": {
"dev": "node ./index.js --mode NODE_ENV=dev",
"test": "node ./index.js --mode NODE_ENV=test",
"production": "node ./index.js --mode NODE_ENV=production",
}
……
}ambiences(type?: string,outDir?: string,dev?: DevConfig)
Parameter
| 参数名称 | 类型 | 描述 |是否必填 | 默认参数 | 备选参数 |
| ------ | ----------- | ----------- | ----------- | ----------- | ----------- |
|type|string|打包后需要处理成什么格式的ambiences.config.*| - | json | json/js |
|outDir|string|打包后ambiences.config.*输出到什么位置| - | dist | - |
|dev|DevConfig|开发环境配置| - | defineDevConfig | - |
defineDevConfig:DevConfig
| 参数名称 | 类型 | 描述 |是否必填 | 默认参数 | 备选参数 |
| ------ | ----------- | ----------- | ----------- | ----------- | ----------- |
|env|string|开发环境需要什么amb.*类型文件| - | js | jsx/js/ts/tsx |
|path|string|开发环境中配置文件输出到什么目录| - | src | - |
|isPro|boolen|当前是否为生产版本| - | false | - |
Plugins Use
import ambiences from '@vvts/ambiences';
module.exports = {
……
"plugins": [
ambiences('js', "dist")
],
……
}
// or
import {ambiences,DevConfig} from '@vvts/ambiences';
const ambiencesDevConfig:DevConfig = {
// 开发环境需要什么amb.*类型文件,可选 ts、tsx、js、jsx
env: "js",
// 开发环境中配置文件输出到什么目录
path: "src/config",
// 当前是否为生产版本
isPro: false
}
module.exports = {
……
"plugins": [
ambiences('js', "dist",ambiencesDevConfig)
],
……
}ambiences production
|--dist
|-- ……
|-- ambiences.config.js
|-- ……以production 环境为例
ambiences.config.js
var ambiences = {
"ENV":"production",
"api":{
requestURL:"http://xxx.api.pro.com"
},
"config":{
systemName:"Production system name"
}
}ambiences.config.json
{
"ENV":"production",
"api":{
"requestURL":"http://xxx.api.pro.com"
},
"config":{
"systemName":"Production system name"
}
}ambiences development
|--src
|-- ……
|-- ambiences.config.js
|-- ……以dev 环境为例
ambiences.config.js
export const ENV = "dev";
export const api = {
"requestURL": "http://xxx.api.dev.com",
};
export const config = {
"systemName": "DevDependencies system name",
};
export default {api,config,ENV}