UNPKG

soraka

Version:

Soraka is a React packaging tool for dcloud.

76 lines (59 loc) 1.79 kB
const _ = require('lodash') const fs = require('fs') const path = require('path') const findup = require('find-up') // 读取 JSON 文件 function readConfigFile(filepath) { return path.extname(filepath) === '.js' ? require(filepath) : JSON.parse(fs.readFileSync(filepath)) } // 根据 .sorakarc 解析执行目录 const sorakaConfigPath = findup.sync(['.sorakarc', '.sorakarc.js']) const sorakaConfig = sorakaConfigPath ? readConfigFile(sorakaConfigPath) : {} const envConfig = process.env.NODE_ENV ? sorakaConfig.env[process.env.NODE_ENV] : {} const APP_PATH = sorakaConfigPath ? path.dirname(sorakaConfigPath) : path.resolve(process.cwd()) const ASSETS_PATH = './assets' const BIN_PATH = path.resolve(__dirname, '../') const SOURCE_PATH = path.resolve(APP_PATH, './src') const SOURCE_ASSETS_PATH = path.resolve(APP_PATH, ASSETS_PATH) const BUILD_PATH = path.resolve(APP_PATH, './build') const BUILD_ASSETS_PATH = path.resolve(APP_PATH, './build/', ASSETS_PATH) const PUBLIC_PATH = '/' var baseConfig = { // 静态文件目录 ASSETS_PATH, // soraka 目录 BIN_PATH, // 运行目录 APP_PATH, // 开发目录 SOURCE_PATH, // 开发目录静态文件 SOURCE_ASSETS_PATH, // 编译目录 BUILD_PATH, // 编译目录静态文件 BUILD_ASSETS_PATH, PUBLIC_PATH, port: 10086, autoOpenBrowser: true, entry: './app', // DefinePlugin plugin define: { 'process.env.NODE_ENV': process.env.NODE_ENV }, // externals config externals: {}, // alias config alias: {}, // proxyMiddleware proxyTable proxy: {}, // htmlWebpackPlugin html: { filename: 'index.html', template: path.resolve(SOURCE_PATH, './index.html'), inject: true } } module.exports = _.defaultsDeep(envConfig, sorakaConfig, baseConfig, {})