vvts-ambiences
v1.0.0
Published
多环境webpck、vite plugins配置生成当前环境配置
Downloads
69
Readme
多环境webpck\vite plugins配置生成当前环境配置(解决多余IP暴露引起的安全性问题)。
Install
$ npm install -D @vvts/ambiences
// or
$ yarn add -D @vvts/ambiences
Usage
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 = true
package.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}