Advertisement
Guest User

Untitled

a guest
Sep 14th, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. const config = {
  2. context: path.join(__dirname, "src"),
  3. entry: {
  4. projectSettingsPage: "./app/project/index",
  5. issuePanel: "./app/issue/index",
  6. contactDetailsDialog: "./app/dialog/index",
  7. wpfConversationNotify: "./app/wpf/notify/index",
  8. },
  9. output: {
  10. filename: '[name].js',
  11. path: path.join(__dirname, "..", "server", "public", "js"),
  12. publicPath: '/assets/js/',
  13. devtoolModuleFilenameTemplate: '[absolute-resource-path]'
  14. },
  15. resolve: {
  16. extensions: ['.ts', ".tsx", '.js'],
  17. },
  18. module: {
  19. rules: [
  20. {
  21. test: /\.tsx?$/,
  22. enforce: 'pre',
  23. use: [
  24. {loader: 'tslint-loader'},
  25. ],
  26. exclude: /(node_modules)/
  27. },
  28. {
  29. test: /\.tsx?$/,
  30. use: [
  31. {loader: "awesome-typescript-loader"},
  32. ],
  33. exclude: /(node_modules)/
  34. },
  35. {
  36. test: /\.css$/,
  37. use: [
  38. {loader: "style-loader"},
  39. {loader: "css-loader"},
  40. ],
  41. },
  42. {
  43. test: /\.(jpe?g|png|gif|svg)$/i,
  44. use: [
  45. {loader: "file-loader"},
  46. ],
  47. },
  48. ]
  49. },
  50. plugins: [
  51. new WebpackNotifierPlugin({
  52. alwaysNotify: false
  53. }),
  54. new webpack.optimize.CommonsChunkPlugin({
  55. name: 'vendors',
  56. filename: 'vendor.js'
  57. }),
  58. new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
  59. new CompressionPlugin(),
  60. ],
  61. };
  62.  
  63. if (process.env.NODE_ENV === 'production') {
  64. config.plugins.push(new webpack.DefinePlugin({
  65. 'process.env': {
  66. 'NODE_ENV': JSON.stringify('production')
  67. }
  68. }));
  69. config.plugins.push(new UglifyJsPlugin());
  70. } else {
  71. config.devtool = 'source-map';
  72. config.plugins.push(new CheckerPlugin());
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement