| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- const path = require('path');
- module.exports = {
- target: 'web',
- entry: {
- app: './public/app/index.ts',
- },
- output: {
- path: path.resolve(__dirname, '../../public/build'),
- filename: '[name].[hash].js',
- // Keep publicPath relative for host.com/grafana/ deployments
- publicPath: 'public/build/',
- },
- resolve: {
- extensions: ['.ts', '.tsx', '.es6', '.js', '.json', '.svg'],
- alias: {},
- modules: [path.resolve('public'), path.resolve('node_modules')],
- },
- stats: {
- children: false,
- warningsFilter: /export .* was not found in/,
- source: false
- },
- node: {
- fs: 'empty',
- },
- module: {
- rules: [{
- test: require.resolve('jquery'),
- use: [{
- loader: 'expose-loader',
- query: 'jQuery',
- },
- {
- loader: 'expose-loader',
- query: '$',
- },
- ],
- },
- {
- test: /\.html$/,
- exclude: /(index|error)\-template\.html/,
- use: [{
- loader: 'ngtemplate-loader?relativeTo=' + path.resolve(__dirname, '../../public') + '&prefix=public',
- },
- {
- loader: 'html-loader',
- options: {
- attrs: [],
- minimize: true,
- removeComments: false,
- collapseWhitespace: false,
- },
- },
- ],
- },
- ],
- },
- // https://webpack.js.org/plugins/split-chunks-plugin/#split-chunks-example-3
- optimization: {
- moduleIds: 'hashed',
- runtimeChunk: 'single',
- splitChunks: {
- chunks: 'all',
- minChunks: 1,
- cacheGroups: {
- moment: {
- test: /[\\/]node_modules[\\/]moment[\\/].*[jt]sx?$/,
- chunks: 'initial',
- priority: 20,
- enforce: true
- },
- angular: {
- test: /[\\/]node_modules[\\/]angular[\\/].*[jt]sx?$/,
- chunks: 'initial',
- priority: 50,
- enforce: true
- },
- vendors: {
- test: /[\\/]node_modules[\\/].*[jt]sx?$/,
- chunks: 'initial',
- priority: -10,
- reuseExistingChunk: true,
- enforce: true
- },
- default: {
- priority: -20,
- chunks: 'all',
- test: /.*[jt]sx?$/,
- reuseExistingChunk: true
- },
- },
- },
- },
- };
|