|
|
@@ -1,24 +1,31 @@
|
|
|
const fs = require('fs')
|
|
|
const path = require('path')
|
|
|
+const webpack = require('webpack')
|
|
|
|
|
|
const port = process.env.port || process.env.npm_config_port || 9527
|
|
|
|
|
|
const isProd = process.env.NODE_ENV !== 'development'
|
|
|
|
|
|
+const isRelease = false
|
|
|
+
|
|
|
+const features = {
|
|
|
+ __DEV__: !isProd,
|
|
|
+ __PLACEHOLDER__: isProd || !isRelease
|
|
|
+}
|
|
|
+
|
|
|
+const copyFiles = [
|
|
|
+ { file: 'mediainfo.min.js', from: 'mediainfo.js/dist', to: '.' },
|
|
|
+ { file: 'MediaInfoModule.wasm', from: 'mediainfo.js/dist', to: '.' },
|
|
|
+ { file: 'spark-md5.min.js', from: 'spark-md5', to: '.' }
|
|
|
+]
|
|
|
+
|
|
|
function resolve (...dir) {
|
|
|
return path.join(__dirname, ...dir)
|
|
|
}
|
|
|
|
|
|
function getCopyFiles () {
|
|
|
- return [
|
|
|
- { file: 'mediainfo.min.js', from: 'mediainfo.js/dist', to: '.' },
|
|
|
- { file: 'MediaInfoModule.wasm', from: 'mediainfo.js/dist', to: '.' },
|
|
|
- { file: 'spark-md5.min.js', from: 'spark-md5', to: '.' }
|
|
|
- ].filter(({ file }) => !fs.existsSync(resolve('public', file))).map(({ file, from, to }) => {
|
|
|
- return {
|
|
|
- from: resolve('node_modules', from, file),
|
|
|
- to
|
|
|
- }
|
|
|
+ return copyFiles.filter(({ file }) => !fs.existsSync(resolve('public', file))).map(({ file, from, to }) => {
|
|
|
+ return { from: resolve('node_modules', from, file), to }
|
|
|
})
|
|
|
}
|
|
|
|
|
|
@@ -65,6 +72,9 @@ module.exports = {
|
|
|
// when there are many pages, it will cause too many meaningless requests
|
|
|
config.plugins.delete('prefetch')
|
|
|
|
|
|
+ config.plugin('feature-flags')
|
|
|
+ .use(webpack.DefinePlugin, [features])
|
|
|
+
|
|
|
// set svg-sprite-loader
|
|
|
config.module
|
|
|
.rule('svg')
|