1. const path = require('path')
    2. const HtmlPlugin = require('html-webpack-plugin')
    3. var { CleanWebpackPlugin } = require('clean-webpack-plugin')
    4. const { resolve } = require('path')
    5. /* 创建 HtmlPlugin 对象 */
    6. const htmlPlugin = new HtmlPlugin({
    7. template: './src/index.html',
    8. filename: './index.html'
    9. })
    10. module.exports = {
    11. /* 运行模式 */
    12. mode: 'development',
    13. /* 调试工具 */
    14. // devtool: 'eval-source-map',
    15. devtool: 'nosoures-source-map',
    16. /* 打包入口 */
    17. entry: path.join(__dirname, './src/js/index.js'),
    18. /* 打包出口 */
    19. output: {
    20. /* 打包后文件存放路径 */
    21. path: path.join(__dirname, 'dist'),
    22. /* 打包后文件名 */
    23. filename: 'js/bundle.js'
    24. },
    25. /* 插件 */
    26. plugins: [htmlPlugin, new CleanWebpackPlugin()],
    27. devServer: {
    28. /* 首次打包,自动打开浏览器 */
    29. open: true,
    30. /* 实时打包主机地址 */
    31. host: '127.0.0.1',
    32. /* 主机端口 */
    33. port: 6060
    34. },
    35. /* 第三方模组 */
    36. module: {
    37. /* 匹配规则 */
    38. rules: [
    39. /* css 样式文件 */
    40. { test: /\.css$/, use: ['style-loader', 'css-loader'] },
    41. /* scss 样式文件 */
    42. { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
    43. /* less 样式文件 */
    44. { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
    45. /* 图片路径 */
    46. { test: /\.jpg|png|gif|jpeg|bmp$/, use: 'url-loader?limit=64000&outputPath=images' },
    47. /* 高级 js 语法 */
    48. { test: /\.js$/, use: 'babel-loader', exclude: '/node_modules/' },
    49. ]
    50. },
    51. /* 路径快捷 */
    52. resolve: {
    53. alias: {
    54. /* @ 代替 src 文件夹 */
    55. '@': path.join(__dirname, './src/')
    56. }
    57. }
    58. }