Use new entry points in builder production config

pull/14080/head
rubenmoya 6 years ago
parent 51459f1f04
commit 2aa613c264

@ -4,27 +4,25 @@
// more control of the output bundle in order to fix unexpected behavior in old browsers.
const webpack = require('webpack');
const {resolve} = require('path');
const PACKAGE = require('../../package.json');
const version = PACKAGE.version;
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const WebpackDeleteAfterEmit = require('webpack-delete-after-emit');
const { resolve } = require('path');
const { version } = require('../../package.json');
const entryPoints = require('./entryPoints');
const rootDir = file => resolve(__dirname, '../../', file);
const isVendor = (module, count) => {
const userRequest = module.userRequest;
return userRequest && userRequest.indexOf('node_modules') >= 0;
};
const entryPoints = {
builder_embed: ['whatwg-fetch', resolve(__dirname, '../../', 'lib/assets/javascripts/builder/public_editor.js')],
dataset: resolve(__dirname, '../../', 'lib/assets/javascripts/builder/dataset.js'),
builder: resolve(__dirname, '../../', 'lib/assets/javascripts/builder/editor.js')
};
module.exports = env => {
return {
entry: entryPoints,
output: {
filename: `${version}/javascripts/[name].js`,
path: resolve(__dirname, '../../', 'public/assets')
path: rootDir('public/assets')
},
resolve: {
modules: require('../common/modules.js'),
@ -68,6 +66,27 @@ module.exports = env => {
__ENV__: JSON.stringify('prod')
}),
new ExtractTextPlugin({
filename: `./${version}/stylesheets/[name].css`
}),
new CopyWebpackPlugin([
{
from: rootDir('app/assets/images'),
to: `./${version}/images/`,
toType: 'dir'
}
]),
new WebpackDeleteAfterEmit({
globs: [
`${version}/javascripts/common_editor3.js`,
`${version}/javascripts/common_editor3.js.map`,
`${version}/javascripts/editor3.js`,
`${version}/javascripts/editor3.js.map`
]
}),
// Minify
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
@ -91,7 +110,7 @@ module.exports = env => {
test: /\.js$/,
loader: 'shim-loader',
include: [
resolve(__dirname, '../../', 'node_modules/internal-carto.js')
rootDir('node_modules/internal-carto.js')
],
options: {
shim: {
@ -111,20 +130,69 @@ module.exports = env => {
test: /\.tpl$/,
use: 'tpl-loader',
include: [
resolve(__dirname, '../../', 'lib/assets/javascripts/builder'),
resolve(__dirname, '../../', 'lib/assets/javascripts/dashboard'),
resolve(__dirname, '../../', 'lib/assets/javascripts/deep-insights'),
resolve(__dirname, '../../', 'node_modules/internal-carto.js')
rootDir('lib/assets/javascripts/builder'),
rootDir('lib/assets/javascripts/dashboard'),
rootDir('lib/assets/javascripts/deep-insights'),
rootDir('node_modules/internal-carto.js')
]
},
{
test: /\.mustache$/,
use: 'raw-loader',
include: [
resolve(__dirname, '../../', 'lib/assets/javascripts/builder'),
resolve(__dirname, '../../', 'lib/assets/javascripts/deep-insights'),
resolve(__dirname, '../../', 'node_modules/internal-carto.js')
rootDir('lib/assets/javascripts/builder'),
rootDir('lib/assets/javascripts/deep-insights'),
rootDir('node_modules/internal-carto.js')
]
},
{
test: /\.s?css$/,
use: ExtractTextPlugin.extract({
use: [
{
loader: 'css-loader',
options: {
alias: {
// This is because of Carto.js _leaflet partial
'../../img': '../img'
},
sourceMap: false
}
},
{
loader: 'sass-loader',
options: {
data: `$assetsDir: "/assets/${version}";`,
sourceMap: false,
includePaths: [
rootDir('node_modules/cartoassets/src/scss')
]
}
}
]
})
},
{
test: /\.(ttf|eot|woff|woff2|svg)(.+#.+)?$/,
use: {
loader: 'file-loader',
options: {
name: `[name].[ext]`,
outputPath: `${version}/fonts/`,
publicPath: `/assets/${version}/fonts/`
}
}
},
{
test: /\.(png|gif)$/,
use: {
loader: 'file-loader',
options: {
name: `[name].[ext]`,
outputPath: `${version}/images/`,
publicPath: `/assets/${version}/images/`
}
}
}
]
},

Loading…
Cancel
Save