mirror of https://github.com/artf/grapesjs.git
nocodeframeworkdrag-and-dropsite-buildersite-generatortemplate-builderui-builderweb-builderweb-builder-frameworkwebsite-builderno-codepage-builder
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
const pkg = require('./package.json');
|
|
const webpack = require('webpack');
|
|
const fs = require('fs');
|
|
let plugins = [];
|
|
|
|
module.exports = env => {
|
|
|
|
const output = {
|
|
filename: './dist/grapes.min.js',
|
|
library: 'grapesjs',
|
|
libraryTarget: 'umd',
|
|
};
|
|
|
|
if (env == 'prod') {
|
|
plugins = [
|
|
new webpack.optimize.ModuleConcatenationPlugin(),
|
|
new webpack.optimize.UglifyJsPlugin({ minimize:true, compressor: {warnings:false}}),
|
|
new webpack.BannerPlugin(`${pkg.name} - ${pkg.version}`),
|
|
];
|
|
} else if (env == 'dev') {
|
|
output.filename = './dist/grapes.js';
|
|
} else {
|
|
const index = 'index.html';
|
|
const indexDev = `_${index}`;
|
|
const template = fs.existsSync(indexDev) ? indexDev : index;
|
|
plugins.push(new HtmlWebpackPlugin({ template }));
|
|
}
|
|
|
|
plugins.push(new webpack.ProvidePlugin({
|
|
_: 'underscore',
|
|
Backbone: 'backbone'
|
|
}));
|
|
|
|
return {
|
|
entry: './src',
|
|
output: output,
|
|
plugins: plugins,
|
|
module: {
|
|
loaders: [{
|
|
test: /grapesjs\/index\.js$/,
|
|
loader: 'string-replace-loader',
|
|
query: {
|
|
search: '<# VERSION #>',
|
|
replace: pkg.version
|
|
}
|
|
},{
|
|
test: /\.js$/,
|
|
loader: 'babel-loader',
|
|
include: /src/
|
|
}],
|
|
},
|
|
resolve: {
|
|
modules: ['src', 'node_modules'],
|
|
alias: {
|
|
jquery: 'cash-dom'
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|