first commit
This commit is contained in:
88
config/webpack/Dist.js
Normal file
88
config/webpack/Dist.js
Normal file
@@ -0,0 +1,88 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Dist configuration. Used to build the
|
||||
* final output when running npm run dist.
|
||||
*/
|
||||
const webpack = require('webpack');
|
||||
const WebpackBaseConfig = require('./Base');
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||
|
||||
const path = require('path');
|
||||
const ROOT = path.resolve(__dirname, '../..');
|
||||
function root(args) {
|
||||
args = Array.prototype.slice.call(arguments, 0);
|
||||
return path.join.apply(path, [ROOT].concat(args));
|
||||
}
|
||||
|
||||
class WebpackDistConfig extends WebpackBaseConfig {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.config = {
|
||||
cache: false,
|
||||
devtool: 'source-map',
|
||||
entry: [
|
||||
'./client.js'
|
||||
],
|
||||
output: {
|
||||
path: root('dist'),
|
||||
publicPath: '/',
|
||||
filename: 'assets/app.js',
|
||||
chunkFilename: 'assets/[id].[hash].chunk.js'
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': {
|
||||
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
|
||||
},
|
||||
}),
|
||||
new webpack.optimize.AggressiveMergingPlugin(),
|
||||
new webpack.NoEmitOnErrorsPlugin(),
|
||||
new webpack.ProvidePlugin({
|
||||
$: "jquery",
|
||||
jQuery: "jquery",
|
||||
"window.jQuery": "jquery"
|
||||
}),
|
||||
new CopyWebpackPlugin([
|
||||
{ from: root('public/'), to: root('dist/') },
|
||||
{ from: root('src/assets/images'), to: root('dist/assets/images') },
|
||||
//{ from: root('src/assets/images-demo'), to: root('dist/assets/images-demo') },
|
||||
]),
|
||||
]
|
||||
};
|
||||
|
||||
// Deactivate hot-reloading if we run dist build on the dev server
|
||||
this.config.devServer.hot = false;
|
||||
|
||||
this.config.module.rules = this.config.module.rules.concat([
|
||||
{
|
||||
test: /^.((?!cssmodule).)*\.(sass|scss)$/,
|
||||
loaders: [
|
||||
{ loader: 'style-loader' },
|
||||
{ loader: 'css-loader' },
|
||||
{ loader: 'postcss-loader' },
|
||||
{ loader: 'sass-loader' }
|
||||
]
|
||||
}, {
|
||||
test: /^.((?!cssmodule).)*\.less$/,
|
||||
loaders: [
|
||||
{ loader: 'style-loader' },
|
||||
{ loader: 'css-loader' },
|
||||
{ loader: 'postcss-loader' },
|
||||
{ loader: 'less-loader' }
|
||||
]
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the environment name
|
||||
* @return {String} The current environment
|
||||
*/
|
||||
get env() {
|
||||
return 'dist';
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = WebpackDistConfig;
|
||||
Reference in New Issue
Block a user