|
|
@ -4,27 +4,25 @@
|
|
|
|
// more control of the output bundle in order to fix unexpected behavior in old browsers.
|
|
|
|
// more control of the output bundle in order to fix unexpected behavior in old browsers.
|
|
|
|
|
|
|
|
|
|
|
|
const webpack = require('webpack');
|
|
|
|
const webpack = require('webpack');
|
|
|
|
const {resolve} = require('path');
|
|
|
|
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
|
|
|
const PACKAGE = require('../../package.json');
|
|
|
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
|
|
const version = PACKAGE.version;
|
|
|
|
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 isVendor = (module, count) => {
|
|
|
|
const userRequest = module.userRequest;
|
|
|
|
const userRequest = module.userRequest;
|
|
|
|
return userRequest && userRequest.indexOf('node_modules') >= 0;
|
|
|
|
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 => {
|
|
|
|
module.exports = env => {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
entry: entryPoints,
|
|
|
|
entry: entryPoints,
|
|
|
|
output: {
|
|
|
|
output: {
|
|
|
|
filename: `${version}/javascripts/[name].js`,
|
|
|
|
filename: `${version}/javascripts/[name].js`,
|
|
|
|
path: resolve(__dirname, '../../', 'public/assets')
|
|
|
|
path: rootDir('public/assets')
|
|
|
|
},
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
resolve: {
|
|
|
|
modules: require('../common/modules.js'),
|
|
|
|
modules: require('../common/modules.js'),
|
|
|
@ -68,6 +66,27 @@ module.exports = env => {
|
|
|
|
__ENV__: JSON.stringify('prod')
|
|
|
|
__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
|
|
|
|
// Minify
|
|
|
|
new webpack.optimize.UglifyJsPlugin({
|
|
|
|
new webpack.optimize.UglifyJsPlugin({
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMap: true,
|
|
|
@ -91,7 +110,7 @@ module.exports = env => {
|
|
|
|
test: /\.js$/,
|
|
|
|
test: /\.js$/,
|
|
|
|
loader: 'shim-loader',
|
|
|
|
loader: 'shim-loader',
|
|
|
|
include: [
|
|
|
|
include: [
|
|
|
|
resolve(__dirname, '../../', 'node_modules/internal-carto.js')
|
|
|
|
rootDir('node_modules/internal-carto.js')
|
|
|
|
],
|
|
|
|
],
|
|
|
|
options: {
|
|
|
|
options: {
|
|
|
|
shim: {
|
|
|
|
shim: {
|
|
|
@ -111,20 +130,69 @@ module.exports = env => {
|
|
|
|
test: /\.tpl$/,
|
|
|
|
test: /\.tpl$/,
|
|
|
|
use: 'tpl-loader',
|
|
|
|
use: 'tpl-loader',
|
|
|
|
include: [
|
|
|
|
include: [
|
|
|
|
resolve(__dirname, '../../', 'lib/assets/javascripts/builder'),
|
|
|
|
rootDir('lib/assets/javascripts/builder'),
|
|
|
|
resolve(__dirname, '../../', 'lib/assets/javascripts/dashboard'),
|
|
|
|
rootDir('lib/assets/javascripts/dashboard'),
|
|
|
|
resolve(__dirname, '../../', 'lib/assets/javascripts/deep-insights'),
|
|
|
|
rootDir('lib/assets/javascripts/deep-insights'),
|
|
|
|
resolve(__dirname, '../../', 'node_modules/internal-carto.js')
|
|
|
|
rootDir('node_modules/internal-carto.js')
|
|
|
|
]
|
|
|
|
]
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
test: /\.mustache$/,
|
|
|
|
test: /\.mustache$/,
|
|
|
|
use: 'raw-loader',
|
|
|
|
use: 'raw-loader',
|
|
|
|
include: [
|
|
|
|
include: [
|
|
|
|
resolve(__dirname, '../../', 'lib/assets/javascripts/builder'),
|
|
|
|
rootDir('lib/assets/javascripts/builder'),
|
|
|
|
resolve(__dirname, '../../', 'lib/assets/javascripts/deep-insights'),
|
|
|
|
rootDir('lib/assets/javascripts/deep-insights'),
|
|
|
|
resolve(__dirname, '../../', 'node_modules/internal-carto.js')
|
|
|
|
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/`
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
]
|
|
|
|
},
|
|
|
|
},
|
|
|
|