webworld888/resources/assets/webpack.config.babel.js
2021-10-26 19:14:12 +09:00

123 lines
3.4 KiB
JavaScript
Vendored

import path from 'path'
import webpack from 'webpack'
import CopyWebpackPlugin from 'copy-webpack-plugin'
import { pathInfo, resolveAlias } from './dll.webpack.config.babel'
export default {
mode: 'production',
target: 'web',
entry: {
'core/common/js/xe.bundle': [
'xe',
pathInfo.common + '/js/lang.js',
pathInfo.common + '/js/progress.js',
pathInfo.common + '/js/request.js',
pathInfo.common + '/js/component.js'
],
'core/editor/editor.bundle': [
pathInfo.core + '/editor/index',
pathInfo.core + '/editor/textarea.define.js'
],
'core/common/js/draft': pathInfo.common + '/js/draft.js',
'core/common/js/dynamicField': pathInfo.common + '/js/dynamicField',
'core/common/js/storeCategory': pathInfo.common + '/js/storeCategory.js',
'core/lang/langEditorBox.bundle': pathInfo.lang + '/LangEditorBox.js',
'core/permission/permission.bundle': pathInfo.permission + '/permission.js',
'core/settings/js/admin.bundle': pathInfo.settings + '/js/admin.js',
'core/user/settings/edit': pathInfo.user + '/settings/edit.js',
// gulp assets:tree
// @FIXME
// @DEPRECATED
'core/common/js/xe.tree': pathInfo.core + '/tree/Tree.js'
},
output: {
path: pathInfo.root,
filename: 'assets/[name].js'
},
plugins: [
new webpack.DllReferencePlugin({
manifest: path.resolve(__dirname, './vendor-manifest.json')
}),
new webpack.DllReferencePlugin({
manifest: path.resolve(__dirname, './common-manifest.json')
}),
new CopyWebpackPlugin([
{
context: path.core,
from: './core/**/*',
to: path.resolve(__dirname, '../../assets'),
ignore: [
'**/*.scss',
'**/*.vue',
'core/**/errors/*.error.js',
'core/**/index.js',
'core/**/store.js',
'core/app.js',
'core/aspect.js',
'core/common.js',
'core/common/js/component.js',
'core/common/js/draft.js',
'core/common/js/dynamicField.js',
'core/common/js/dynamicLoadManager.js',
'core/common/js/griper.js',
'core/common/js/lang.js',
'core/common/js/progress.js',
'core/common/js/request.js',
'core/common/js/storeCategory.js',
'core/common/js/translator.js',
'core/common/js/utils.js',
'core/common/js/validator.js',
'core/common/js/xe.js',
'core/component.js',
'core/dynamic-load-manager.js',
'core/editor/**/*.js',
'core/error/index.js',
'core/form/**/*.js',
'core/griper/**/*.js',
'core/index.js',
'core/karma.conf.js',
'core/lang/index.js',
'core/lang/LangEditorBox.js',
'core/permission/*.js',
'core/plugin.js',
'core/request/**/*.js',
'core/router/**/*.js',
'core/settings/js/admin.js',
'core/singleton.js',
'core/tree/**/*.js',
'core/user/settings/edit.js',
'core/utils/**/*.js',
'core/validator/**/*.js',
'core/vendor.js'
]
}
])
],
module: {
rules: [
{
test: /(\.js)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
}
]
},
resolve: {
alias: resolveAlias,
extensions: ['.js', '.json', '.vue']
},
externals: {
window: 'window'
}
}
export {
pathInfo,
resolveAlias
}