const ENV = process.env.NODE_ENV const useCDN = process.env.URL === 'cdn' const path = require('path') function resolve (dir) { return path.join(__dirname, dir) } let baseUrl = getBaseUrl() let trimUrl = baseUrl if (trimUrl.indexOf('//') === -1) { trimUrl = trimUrl.substr(1) } module.exports = { // indexPath: ENV === 'production' ? '../protected/views/index.html' : 'index.html', outputDir: './dist', // build 时生成的生产环境构建文件的目录 baseUrl: baseUrl, lintOnSave: true, // 关闭eslint productionSourceMap: false, // 生产环境取消source map pages: { index: { entry: '_src/pages/index/main.js', title: 'MeeChat', filename: ENV === 'production' ? '../protected/views/index.html' : 'index.html' }, mini: { entry: '_src/pages/mini/main.js', template: 'public/mini.html', title: 'MeeChat', filename: ENV === 'production' ? '../protected/views/mini.html' : 'mini.html' }, h5: { entry: '_src/pages/h5/main.js', template: 'public/h5.html', title: 'MeeChat', filename: ENV === 'production' ? '../protected/views/h5.html' : 'h5.html' } }, chainWebpack: (config) => { config.resolve.alias .set('@', resolve('_src')) }, css: { loaderOptions: { sass: { data: `@import "@/style/mixins.scss";` } } }, pwa: { name: 'MeeChat', workboxPluginMode: 'InjectManifest', workboxOptions: { // directoryIndex: null, importWorkboxFrom: 'disabled', swSrc: 'public/sw.js' }, iconPaths: { favicon32: trimUrl + 'img/icons/meechat.png?imageview/0/w/64', favicon16: trimUrl + 'img/icons/meechat.png?imageview/0/w/32', appleTouchIcon: trimUrl + 'img/icons/meechat.png?imageview/0/w/152', maskIcon: 'img/icons/safari-pinned-tab.svg', msTileImage: trimUrl + 'img/icons/meechat.png?imageview/0/w/144' } } } function getBaseUrl () { if (ENV === 'production') { return useCDN ? '//static.meechat.me/cdn/mee.chat/dist/' : '/dist/' } else { return '/' } }