Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const path = require('path');
  2. const fs = require('fs');
  3. const ExtractCSSPlugin = require('extract-text-webpack-plugin');
  4. const nodeExternals = require('webpack-node-externals');
  5.  
  6. const getFiles = (dir, files_) => {
  7.     files_ = files_ || [];
  8.     const files = fs.readdirSync(dir);
  9.     for (const i in files){
  10.         const name = dir + '\\' + files[i];
  11.         if (fs.statSync(name).isDirectory()){
  12.             getFiles(name, files_);
  13.         } else {
  14.             files_.push(name);
  15.         }
  16.     }
  17.     return files_;
  18. };
  19.  
  20. const filterCSS = (file) => {
  21.     return /\.css$/.test(file);
  22. };
  23.  
  24. const cssFiles = getFiles(path.resolve(__dirname, "src")).filter(filterCSS);
  25.  
  26. module.exports = {
  27.     externals: [
  28.         nodeExternals()
  29.     ],
  30.     entry: cssFiles.concat('./src/index.ts'),
  31.     output: {
  32.         path: path.resolve(__dirname, "dist"),
  33.         filename: "main.js"
  34.     },
  35.     resolve: {
  36.         extensions: [
  37.             ".ts",
  38.             ".tsx",
  39.             ".css",
  40.         ]
  41.     },
  42.     module: {
  43.         rules: [
  44.             {
  45.                 test: /\.(ts|tsx)/,
  46.                 loaders: [
  47.                     'babel-loader',
  48.                     'ts-loader',
  49.                 ],
  50.             },
  51.             {
  52.                 test: /\.css$/,
  53.                 use: ExtractCSSPlugin.extract({
  54.                     use: [
  55.                         "css-loader",
  56.                     ]
  57.                 })
  58.             },
  59.         ]
  60.     },
  61.     plugins: [
  62.         new ExtractCSSPlugin('dist.css')
  63.     ],
  64.     target: "node"
  65. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement