Bleser

Untitled

Jan 31st, 2018
1,672
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. var HtmlWebpackPlugin = require('html-webpack-plugin');
  4.  
  5. module.exports = {
  6.     entry: {
  7.         index: ['./src/index.ts', './src/style.scss']
  8.     },
  9.     output: {
  10.         path: path.resolve(__dirname, './build'),
  11.         publicPath: '/static/',
  12.         filename: '[name].bundle.js',
  13.         chunkFilename: '[name].bundle.js',
  14.     },
  15.     plugins: [
  16.         new webpack.optimize.CommonsChunkPlugin("common"),
  17.         new HtmlWebpackPlugin({
  18.             minify: false,
  19.             filename: "index.html",
  20.             template: "index.html",
  21.             cache: false
  22.         })
  23.     ],
  24.     module: {
  25.         rules: [
  26.             {
  27.                 test: /\.vue$/,
  28.                 loader: 'vue-loader',
  29.                 options: {
  30.                     loaders: {
  31.                         'scss': 'vue-style-loader!css-loader!sass-loader',
  32.                         'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
  33.                     }
  34.                 }
  35.             },
  36.             {
  37.                 test: /\.tsx?$/,
  38.                 loader: 'ts-loader',
  39.                 exclude: /node_modules/
  40.             },
  41.             {test: /\.html$/, loader: 'html-loader?exportAsEs6Default'},
  42.             {
  43.                 test: /\.scss$/,
  44.                 use: [{
  45.                     loader: "style-loader" // creates style nodes from JS strings
  46.                 }, {
  47.                     loader: "css-loader" // translates CSS into CommonJS
  48.                 }, {
  49.                     loader: "sass-loader" // compiles Sass to CSS
  50.                 }]
  51.             },
  52.             {
  53.                 test: /\.(eot|svg|ttf|woff|woff2)$/,
  54.                 use: [
  55.                     {
  56.                         loader: 'file-loader?name=./assets/fonts/webfonts/[name].[ext]'
  57.                     },
  58.                     {
  59.                         loader: 'file-loader?name=./assets/fonts/Roboto/[name].[ext]'
  60.                     }
  61.                 ]
  62.             }
  63.         ]
  64.     },
  65.     resolve: {
  66.         extensions: ['.ts', '.js', '.vue', '.json', ".html"],
  67.         alias: {
  68.             'vue$': 'vue/dist/vue.esm.js',
  69.             "@components": path.resolve(__dirname, "src/components"),
  70.             "@pages": path.resolve(__dirname, "src/pages"),
  71.             "@entity": path.resolve(__dirname, "src/entity")
  72.         }
  73.     },
  74.  
  75.     watch: true,
  76.     watchOptions: {
  77.         aggregateTimeout: 300,
  78.         ignored: /node_modules/
  79.     },
  80.     devServer: {
  81.         contentBase: [path.resolve(__dirname, "build"), path.resolve(__dirname, "assets")],
  82.         compress: true,
  83.         port: 4200,
  84.         historyApiFallback: true,
  85.         noInfo:true
  86.     }
  87. }
RAW Paste Data