| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- const path = require('path');
- const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
- 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/
- },
- 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: {
- splitChunks: {
- cacheGroups: {
- commons: {
- test: /[\\/]node_modules[\\/].*[jt]sx?$/,
- name: 'vendor',
- chunks: 'all'
- }
- }
- }
- },
- plugins: [
- new ForkTsCheckerWebpackPlugin({
- checkSyntacticErrors: true,
- }),
- ]
- };
|