mirror of
https://github.com/ansible/awx.git
synced 2026-05-19 14:57:39 -02:30
Clean up webpack config (#5157)
* Make “dev” and “release” more consistent in web pack config * Consolidate dev and release webpack configs
This commit is contained in:
@@ -44,115 +44,75 @@ var vendorPkgs = [
|
|||||||
'reconnectingwebsocket'
|
'reconnectingwebsocket'
|
||||||
];
|
];
|
||||||
|
|
||||||
var dev = {
|
var baseConfig = function() {
|
||||||
entry: {
|
return {
|
||||||
app: './client/src/app.js',
|
entry: {
|
||||||
vendor: vendorPkgs
|
app: './client/src/app.js',
|
||||||
},
|
vendor: vendorPkgs
|
||||||
output: {
|
},
|
||||||
path: './static/',
|
output: {
|
||||||
filename: 'tower.js'
|
path: './static/',
|
||||||
},
|
filename: 'tower.js'
|
||||||
plugins: [
|
},
|
||||||
// vendor shims:
|
plugins: [
|
||||||
// [{expected_local_var : dependency}, ...]
|
// vendor shims:
|
||||||
new webpack.ProvidePlugin({
|
// [{expected_local_var : dependency}, ...]
|
||||||
'$': 'jquery',
|
new webpack.ProvidePlugin({
|
||||||
'jQuery': 'jquery',
|
'$': 'jquery',
|
||||||
'window.jQuery': 'jquery',
|
'jQuery': 'jquery',
|
||||||
'_': 'lodash',
|
'window.jQuery': 'jquery',
|
||||||
'CodeMirror': 'codemirror',
|
'_': 'lodash',
|
||||||
'jsyaml': 'js-yaml',
|
'CodeMirror': 'codemirror',
|
||||||
'jsonlint': 'codemirror.jsonlint',
|
'jsyaml': 'js-yaml',
|
||||||
}),
|
'jsonlint': 'codemirror.jsonlint'
|
||||||
// (chunkName, outfileName)
|
}),
|
||||||
new webpack.optimize.CommonsChunkPlugin('vendor', 'tower.vendor.js'),
|
new webpack.optimize.CommonsChunkPlugin('vendor', 'tower.vendor.js')
|
||||||
new webpack.DefinePlugin({ $ENV: JSON.stringify(awx_env) })
|
],
|
||||||
],
|
module: {
|
||||||
module: {
|
loaders: [{
|
||||||
preLoaders: [{
|
// disable AMD loading (broken in this lib) and default to CommonJS (not broken)
|
||||||
test: /\.js?$/,
|
test: /\.angular-tz-extensions.js$/,
|
||||||
loader: 'jshint-loader',
|
loader: 'imports?define=>false'
|
||||||
exclude: ['/(node_modules)/'],
|
}, {
|
||||||
include: [path.resolve() + '/client/src/'],
|
// es6 -> es5
|
||||||
jshint: {
|
test: /\.js$/,
|
||||||
emitErrors: true
|
loader: 'babel-loader',
|
||||||
|
exclude: /(node_modules)/,
|
||||||
|
query: {
|
||||||
|
presets: ['es2015']
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'codemirror.jsonlint': path.resolve() + '/node_modules/codemirror/addon/lint/json-lint.js',
|
||||||
|
'jquery.resize': path.resolve() + '/node_modules/javascript-detect-element-resize/jquery.resize.js',
|
||||||
|
'select2': path.resolve() + '/node_modules/select2/dist/js/select2.full.js'
|
||||||
}
|
}
|
||||||
}],
|
|
||||||
loaders: [{
|
|
||||||
// disable AMD loading (broken in this lib) and default to CommonJS (not broken)
|
|
||||||
test: /\.angular-tz-extensions.js$/,
|
|
||||||
loader: 'imports?define=>false'
|
|
||||||
}, {
|
|
||||||
// es6 -> es5
|
|
||||||
test: /\.js$/,
|
|
||||||
loader: 'babel-loader',
|
|
||||||
exclude: /(node_modules)/,
|
|
||||||
query: {
|
|
||||||
presets: ['es2015']
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
'codemirror.jsonlint': path.resolve() + '/node_modules/codemirror/addon/lint/json-lint.js',
|
|
||||||
'jquery.resize': path.resolve() + '/node_modules/javascript-detect-element-resize/jquery.resize.js',
|
|
||||||
'select2': path.resolve() + '/node_modules/select2/dist/js/select2.full.js'
|
|
||||||
}
|
}
|
||||||
},
|
};
|
||||||
devtool: 'inline-source-map',
|
|
||||||
watch: true,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var release = {
|
var dev = baseConfig();
|
||||||
entry: {
|
|
||||||
app: './client/src/app.js',
|
dev.devtool = 'inline-source-map';
|
||||||
vendor: vendorPkgs
|
dev.watch = true;
|
||||||
},
|
dev.plugins.push(new webpack.DefinePlugin({ $ENV: JSON.stringify(awx_env) }));
|
||||||
output: {
|
dev.module.preLoaders = [
|
||||||
path: './static/',
|
{
|
||||||
filename: 'tower.js'
|
test: /\.js?$/,
|
||||||
},
|
loader: 'jshint-loader',
|
||||||
plugins: [
|
exclude: ['/(node_modules)/'],
|
||||||
// vendor shims:
|
include: [path.resolve() + '/client/src/'],
|
||||||
// [{expected_local_var : dependency}, ...]
|
jshint: {
|
||||||
new webpack.ProvidePlugin({
|
emitErrors: true
|
||||||
$: 'jquery',
|
|
||||||
jQuery: 'jquery',
|
|
||||||
'window.jQuery': 'jquery',
|
|
||||||
_: 'lodash',
|
|
||||||
'CodeMirror': 'codemirror',
|
|
||||||
'jsyaml': 'js-yaml',
|
|
||||||
'jsonlint': 'codemirror.jsonlint'
|
|
||||||
}),
|
|
||||||
new webpack.DefinePlugin({ $ENV: {} }),
|
|
||||||
new webpack.optimize.CommonsChunkPlugin('vendor', 'tower.vendor.js'),
|
|
||||||
new webpack.optimize.UglifyJsPlugin({
|
|
||||||
mangle: false
|
|
||||||
})
|
|
||||||
],
|
|
||||||
module: {
|
|
||||||
loaders: [{
|
|
||||||
// disable AMD loading (broken in this lib) and default to CommonJS (not broken)
|
|
||||||
test: /\.angular-tz-extensions.js$/,
|
|
||||||
loader: 'imports?define=>false!'
|
|
||||||
}, {
|
|
||||||
// es6 -> es5
|
|
||||||
test: /\.js$/,
|
|
||||||
loader: 'babel-loader',
|
|
||||||
exclude: /(node_modules)/,
|
|
||||||
query: {
|
|
||||||
presets: ['es2015']
|
|
||||||
}
|
|
||||||
}, ]
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
'codemirror.jsonlint': path.resolve() + '/node_modules/codemirror/addon/lint/json-lint.js',
|
|
||||||
'jquery.resize': path.resolve() + '/node_modules/javascript-detect-element-resize/jquery.resize.js',
|
|
||||||
'select2': path.resolve() + '/node_modules/select2/dist/js/select2.full.js'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
];
|
||||||
|
|
||||||
|
var release = baseConfig();
|
||||||
|
|
||||||
|
release.plugins.push(new webpack.DefinePlugin({ $ENV: {} }));
|
||||||
|
release.plugins.push(new webpack.optimize.UglifyJsPlugin({ mangle: false }));
|
||||||
|
|
||||||
module.exports = { dev: dev, release: release };
|
module.exports = { dev: dev, release: release };
|
||||||
|
|||||||
Reference in New Issue
Block a user