wci-build
Version:
A webpack scaffold
88 lines (78 loc) • 2.58 kB
JavaScript
/*
* @Author: jason
* @Date: 2017-11-25 10:18:45
* @Last Modified by: jason
* @Last Modified time: 2019-09-26 14:17:05
*/
import { readFileSync } from 'fs';
const projectDirectory = process.cwd();
const build = '/build';
const wci = require(`${projectDirectory}/${build}/wci.app.js`)();
const wciLocal = require(`${projectDirectory}/${build}/wci.local.js`)();
const wciDev = require(`${projectDirectory}/${build}/wci.dev.js`)();
const wciRelease = require(`${projectDirectory}/${build}/wci.release.js`)();
const wciProd = require(`${projectDirectory}/${build}/wci.prod.js`)();
const files = readFileSync(`${projectDirectory}/package.json`);
let version = `V${JSON.parse(files.toString()).version}`;
let apis;
let output;
let application;
let isEslint;
let isAnalyzer;
/**
* 区分环境
*/
// 本地
if(process.env.NODE_ENV && process.env.NODE_ENV === 'default') {
apis = wciLocal.apis;
application = wciLocal.application;
isEslint = wciLocal.eslint;
isAnalyzer = wciLocal.analyzer;
}
// 开发
if (process.env.NODE_ENV && process.env.NODE_ENV === 'development') {
apis = wciDev.apis;
output = wciDev.output;
application = wciDev.application;
isEslint = wciDev.eslint;
isAnalyzer = wciDev.analyzer;
}
// 测试
if (process.env.NODE_ENV && process.env.NODE_ENV === 'release') {
apis = wciRelease.apis;
output = wciRelease.output;
application = wciRelease.application;
isEslint = wciRelease.eslint;
isAnalyzer = wciRelease.analyzer;
}
// 生产
if (process.env.NODE_ENV && process.env.NODE_ENV === 'production') {
apis = wciProd.apis;
output = wciProd.output;
application = wciProd.application;
isEslint = wciProd.eslint;
isAnalyzer = wciProd.analyzer;
}
/**
* @type {Object}
*/
const config = {
// 默认
DEFAULT_VERSION: version || '1.0.0',
DEFAULT_PATH: projectDirectory, // 项目根目录
// wci配置
DEFAULT_SRC: wci.src || 'app', // 项目代码目录
DEFAULT_INDEX: wci.index || 'app/index.js', // 项目入口文件
DEFAULT_NAME: wci.name || 'WCI', // 项目名称
DEFAULT_DLL: wci.dll || {},
// 动态环境配置
DEFAULT_ESLINT: isEslint || true, // 是否开启ESLINT
DEFAULT_ANALYZER: isAnalyzer || true, // 是否懒加载
DEFAULT_APIS: apis || {}, // 项目接口
DEFAULT_OUTPUT: output || 'dev', // 项目出口
DEFAULT_APPLICATION: application || {}, // 项目配置
// LOCAL独有配置
DEFAULT_HOSTNAME: wciLocal.hostname, // 本地启动IP|域名(local环境独有)
DEFAULT_PORT: wciLocal.port, // 项目端口(local环境独有)
};
module.exports = config;