Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| const path = require('path'); | |
| const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); | |
| const MiniCssExtractPlugin = require("mini-css-extract-plugin"); | |
| const CopyWebpackPlugin = require('copy-webpack-plugin'); | |
| module.exports = { | |
| entry: { | |
| main: './ts/main.ts', | |
| // captioning: './ts/captioning.ts' | |
| }, | |
| module: { | |
| rules: [ | |
| { | |
| test: /\.tsx?$/, | |
| exclude: [ | |
| /node_modules/, | |
| /ImageContentBox\.ts/, | |
| /test\.ts/ | |
| // path.resolve(__dirname,'ts/vis/ImageContentBox.ts') | |
| ], | |
| use: [{ | |
| loader: 'cache-loader' | |
| }, | |
| { | |
| loader: 'thread-loader', | |
| options: { | |
| // there should be 1 cpu for the fork-ts-checker-webpack-plugin | |
| workers: require('os').cpus().length - 1, | |
| }, | |
| }, | |
| { | |
| loader: 'ts-loader', | |
| options: { | |
| happyPackMode: true // IMPORTANT! use happyPackMode mode to speed-up compilation and reduce errors reported to webpack | |
| } | |
| } | |
| ].slice(process.env.CI ? 2 : 0) // no optimizations for CIs | |
| }, | |
| { | |
| test: /\.s?css$/, | |
| use: [ | |
| { | |
| loader: MiniCssExtractPlugin.loader, | |
| options: { | |
| // you can specify a publicPath here | |
| // by default it use publicPath in webpackOptions.output | |
| // publicPath: '../' | |
| } | |
| }, | |
| { | |
| loader: 'css-loader', | |
| options: { | |
| minimize: true, | |
| sourceMap: true | |
| } | |
| }, | |
| { | |
| loader: 'sass-loader', | |
| options: { | |
| sourceMap: true | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| test: /\.(png|jpg)$/, | |
| loader: 'url-loader', | |
| options: { | |
| limit: 20000 //inline <= 10kb | |
| } | |
| }, | |
| { | |
| test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, | |
| loader: 'url-loader', | |
| options: { | |
| limit: 20000, //inline <= 20kb | |
| mimetype: 'application/font-woff' | |
| } | |
| }, | |
| { | |
| test: /\.svg(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, | |
| loader: 'url-loader', | |
| options: { | |
| limit: 10000, //inline <= 10kb | |
| mimetype: 'image/svg+xml' | |
| } | |
| }, | |
| { | |
| test: /\.(ttf|eot)(\?v=[0-9]\.[0-9]\.[0-9])?$/, | |
| loader: 'file-loader' | |
| } | |
| ] | |
| }, | |
| resolve: { | |
| extensions: ['.ts', '.js'] | |
| }, | |
| plugins: [ | |
| new MiniCssExtractPlugin({ | |
| // Options similar to the same options in webpackOptions.output | |
| // both options are optional | |
| // filename: "style.css", | |
| // chunkFilename: "chunk.css" | |
| }), | |
| new ForkTsCheckerWebpackPlugin({ | |
| checkSyntacticErrors: true | |
| }), | |
| new CopyWebpackPlugin([ | |
| {from: 'img', to: 'img'}, | |
| {from: "demo", to:"demo"} | |
| ]), | |
| ], | |
| optimization: { | |
| splitChunks: { | |
| cacheGroups: { | |
| vendor: { | |
| test: /node_modules/, | |
| chunks: "initial", | |
| name: "vendor", | |
| priority: 10, | |
| enforce: true | |
| } | |
| } | |
| } | |
| }, | |
| output: { | |
| filename: '[name].js', | |
| path: path.resolve(__dirname, '../dist/') | |
| }, | |
| devServer: { | |
| port: 8090, | |
| proxy: { | |
| '/api/*': { | |
| target: 'http://localhost:8080', | |
| secure: false, | |
| ws: true | |
| } | |
| } | |
| } | |
| }; | |