Advertisement
Guest User

webpack

a guest
Mar 19th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. var path = require('path')
  2. var webpack = require('webpack')
  3.  
  4. module.exports = {
  5. entry: './src/main.js',
  6. output: {
  7. path: path.resolve(__dirname, './dist'),
  8. publicPath: '/dist/',
  9. filename: 'build.js'
  10. },
  11. module: {
  12. rules: [
  13. {
  14. test: /\.vue$/,
  15. loader: 'vue-loader',
  16. options: {
  17. loaders: {
  18. // Since sass-loader (weirdly) has SCSS as its default parse mode, we map
  19. // the "scss" and "sass" values for the lang attribute to the right configs here.
  20. // other preprocessors should work out of the box, no loader config like this necessary.
  21. 'scss': 'vue-style-loader!css-loader!sass-loader',
  22. 'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax'
  23. }
  24. // other vue-loader options go here
  25. }
  26. },
  27. {
  28. test: /\.css$/,
  29. loader: "style-loader!css-loader?sourceMap"
  30. //loader: "style-loader!css-loader?sourceMap"
  31. },
  32. { test: /vendor\/.+\.(jsx|js)$/,
  33. loader: 'imports?jQuery=jquery,$=jquery,this=>window'
  34. },
  35. {
  36. test: /\.(html)$/,
  37. use: {
  38. loader: 'html-loader',
  39. options: {
  40. attrs: [':data-src']
  41. }
  42. }
  43. },
  44. {
  45. test: /\.scss$/,
  46. use: [{
  47. loader: "style-loader" // creates style nodes from JS strings
  48. }, {
  49. loader: "css-loader", // translates CSS into CommonJS
  50. options:{
  51. sourceMap: true
  52. }
  53. }, {
  54. loader: "sass-loader", // compiles Sass to CSS
  55. options:{
  56. sourceMap: true
  57. }
  58.  
  59. }]
  60. },
  61. {
  62. test: /\.js$/,
  63. loader: 'babel-loader',
  64. // include: [resolve('src'), resolve('test')],
  65. exclude: /node_modules/
  66. },
  67. {
  68. //test: /\.(png|jpg|gif|svg)$/,
  69. test: /.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/,
  70. loader: 'file-loader',
  71. options: {
  72. name: '[name].[ext]?[hash]'
  73. }
  74. }
  75. ]
  76. },
  77. resolve: {
  78. alias: {
  79. //extensions: ['.js', '.vue', '.json'],
  80. 'vue$': 'vue/dist/vue.esm.js',
  81. // '@': resolve('src'),
  82. 'jquery': 'jquery/src/jquery.js'
  83. }
  84. },
  85. devServer: {
  86. historyApiFallback: true,
  87. noInfo: true
  88. },
  89. performance: {
  90. hints: false
  91. },
  92. devtool: '#eval-source-map'
  93. }
  94.  
  95. if (process.env.NODE_ENV === 'production') {
  96. module.exports.devtool = '#source-map'
  97. // http://vue-loader.vuejs.org/en/workflow/production.html
  98. module.exports.plugins = (module.exports.plugins || []).concat([
  99. new webpack.DefinePlugin({
  100. 'process.env': {
  101. NODE_ENV: '"production"'
  102. }
  103. }),
  104. new webpack.optimize.UglifyJsPlugin({
  105. sourceMap: true,
  106. compress: {
  107. warnings: true
  108. }
  109. }),
  110. new webpack.LoaderOptionsPlugin({
  111. minimize: true
  112. }),
  113.  
  114. new webpack.ProvidePlugin({
  115. Alert: "exports?Alert!bootstrap/js/dist/alert",
  116. Button: "exports?Button!bootstrap/js/dist/button",
  117. Collapse: "exports?Collapse!bootstrap/js/dist/collapse",
  118. Dropdown: "exports?Dropdown!bootstrap/js/dist/dropdown",
  119. Modal: "exports?Modal!bootstrap/js/dist/modal",
  120. Popover: "exports?Popover!bootstrap/js/dist/popover",
  121. Scrollspy: "exports?Scrollspy!bootstrap/js/dist/scrollspy",
  122. Tab: "exports?Tab!bootstrap/js/dist/tab",
  123. Tooltip: "exports?Tooltip!bootstrap/js/dist/tooltip",
  124. Util: "exports?Util!bootstrap/js/dist/util",
  125. })
  126.  
  127. ])
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement