104 lines
3.0 KiB
JavaScript
104 lines
3.0 KiB
JavaScript
import path from 'path'
|
|
import VirtualModulePlugin from 'virtual-module-webpack-plugin'
|
|
import WebpackElementPlugin from './webpack.element.plugin.babel'
|
|
|
|
const tag = __dirname.split(path.sep).pop()
|
|
|
|
module.exports = Object.assign({}, {
|
|
devtool: 'eval',
|
|
mode: 'development',
|
|
entry: {
|
|
element: './' + tag + '/',
|
|
vendor: [
|
|
'jquery',
|
|
'react',
|
|
'react-dom',
|
|
'create-react-class',
|
|
'classnames',
|
|
'lodash',
|
|
'vc-cake',
|
|
'pako',
|
|
'base-64',
|
|
'babel-runtime/core-js.js',
|
|
'babel-runtime/helpers/createClass.js',
|
|
'babel-runtime/helpers/inherits.js',
|
|
'babel-runtime/helpers/typeof.js',
|
|
'babel-runtime/helpers/possibleConstructorReturn.js',
|
|
'babel-runtime/helpers/classCallCheck.js',
|
|
'babel-runtime/helpers/extends.js',
|
|
'babel-runtime/core-js/symbol.js',
|
|
'babel-runtime/core-js/symbol/iterator.js',
|
|
'babel-runtime/core-js/object/set-prototype-of.js',
|
|
'babel-runtime/core-js/object/get-prototype-of.js',
|
|
'babel-runtime/core-js/object/define-property.js',
|
|
'babel-runtime/core-js/object/create.js',
|
|
'babel-runtime/core-js/object/assign.js',
|
|
'babel-runtime/core-js/object/keys.js'
|
|
]
|
|
},
|
|
output: {
|
|
path: path.resolve(__dirname, 'public/dist/'), // Assets dist path
|
|
publicPath: '.', // Used to generate URL's
|
|
filename: '[name].bundle.js', // Main bundle file
|
|
chunkFilename: '[name].bundle.js',
|
|
jsonpFunction: 'vcvWebpackJsonp4x'
|
|
},
|
|
node: {
|
|
'fs': 'empty'
|
|
},
|
|
optimization: {
|
|
minimize: false,
|
|
runtimeChunk: false,
|
|
namedModules: true,
|
|
splitChunks: {
|
|
cacheGroups: {
|
|
default: false,
|
|
vendor: {
|
|
chunks: 'initial',
|
|
name: 'vendor',
|
|
test: 'vendor',
|
|
enforce: true
|
|
},
|
|
element: {
|
|
chunks: 'initial',
|
|
name: 'element',
|
|
test: 'element',
|
|
enforce: true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
plugins: [
|
|
new VirtualModulePlugin({
|
|
moduleName: 'node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js',
|
|
contents: `module.exports = require('core-js/library/modules/web.dom.iterable.js')`
|
|
}),
|
|
new VirtualModulePlugin({
|
|
moduleName: 'node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js',
|
|
contents: `module.exports = require('core-js/library/modules/es6.string.iterator.js')`
|
|
}),
|
|
new VirtualModulePlugin({
|
|
moduleName: 'node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js',
|
|
contents: `module.exports = require('core-js/library/modules/core.is-iterable.js')`
|
|
}),
|
|
new WebpackElementPlugin(tag)
|
|
],
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.mjs$/,
|
|
include: /node_modules/,
|
|
type: 'javascript/auto'
|
|
},
|
|
{
|
|
test: /\.js$/,
|
|
use: { loader: 'babel-loader' },
|
|
exclude: /node_modules/
|
|
}
|
|
]
|
|
},
|
|
resolve: {
|
|
alias: { 'public': path.resolve(__dirname, 'public') }
|
|
}
|
|
})
|