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') } } })