|
|
@@ -5,40 +5,45 @@ const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
|
const base = require('./webpack.base.conf');
|
|
|
const { IS_DEV } = require('./utils');
|
|
|
|
|
|
-const targets = module.exports = [];
|
|
|
+const entry = {
|
|
|
+ 'background/app': 'src/background/app.js',
|
|
|
+ 'options/app': 'src/options/app.js',
|
|
|
+ 'popup/app': 'src/popup/app.js',
|
|
|
+ injected: 'src/injected/index.js',
|
|
|
+};
|
|
|
|
|
|
-targets.push(Object.assign({}, base, {
|
|
|
- entry: {
|
|
|
- 'background/app': 'src/background/app.js',
|
|
|
- 'options/app': 'src/options/app.js',
|
|
|
- 'popup/app': 'src/popup/app.js',
|
|
|
- },
|
|
|
+module.exports = Object.assign({}, base, {
|
|
|
+ entry,
|
|
|
plugins: [
|
|
|
... base.plugins,
|
|
|
- // split vendor js into its own file
|
|
|
+ new webpack.optimize.CommonsChunkPlugin({
|
|
|
+ name: 'browser',
|
|
|
+ chunks: Object.keys(entry),
|
|
|
+ }),
|
|
|
new webpack.optimize.CommonsChunkPlugin({
|
|
|
name: 'vendor',
|
|
|
+ chunks: Object.keys(entry).filter(key => key !== 'injected'),
|
|
|
minChunks: 2,
|
|
|
}),
|
|
|
new HtmlWebpackPlugin({
|
|
|
filename: 'background/index.html',
|
|
|
template: 'src/background/index.html',
|
|
|
inject: true,
|
|
|
- chunks: ['vendor', 'background/app'],
|
|
|
+ chunks: ['vendor', 'browser', 'background/app'],
|
|
|
chunksSortMode: 'dependency'
|
|
|
}),
|
|
|
new HtmlWebpackPlugin({
|
|
|
filename: 'options/index.html',
|
|
|
template: 'src/options/index.html',
|
|
|
inject: true,
|
|
|
- chunks: ['vendor', 'options/app'],
|
|
|
+ chunks: ['vendor', 'browser', 'options/app'],
|
|
|
chunksSortMode: 'dependency'
|
|
|
}),
|
|
|
new HtmlWebpackPlugin({
|
|
|
filename: 'popup/index.html',
|
|
|
template: 'src/popup/index.html',
|
|
|
inject: true,
|
|
|
- chunks: ['vendor', 'popup/app'],
|
|
|
+ chunks: ['vendor', 'browser', 'popup/app'],
|
|
|
chunksSortMode: 'dependency'
|
|
|
}),
|
|
|
// new FriendlyErrorsPlugin(),
|
|
|
@@ -56,21 +61,4 @@ targets.push(Object.assign({}, base, {
|
|
|
externals: {
|
|
|
localStorage: 'localStorage',
|
|
|
},
|
|
|
-}));
|
|
|
-
|
|
|
-targets.push(Object.assign({}, base, {
|
|
|
- entry: {
|
|
|
- injected: 'src/injected/index.js',
|
|
|
- browser: 'src/browser.js',
|
|
|
- },
|
|
|
- plugins: [
|
|
|
- ... base.plugins,
|
|
|
- ... IS_DEV ? [] : [
|
|
|
- new webpack.optimize.UglifyJsPlugin({
|
|
|
- compress: {
|
|
|
- warnings: false
|
|
|
- }
|
|
|
- }),
|
|
|
- ],
|
|
|
- ],
|
|
|
-}));
|
|
|
+});
|