1. /*
    2. 开发环境配置:能让代码运行
    3. 运行项目指令:
    4. webpack 会将打包结果输出出去
    5. npx webpack-dev-server 只会在内存中编译打包,没有输出
    6. */
    7. const { resolve } = require('path');
    8. const HtmlWebpackPlugin = require('html-webpack-plugin');
    9. module.exports = {
    10. entry: './src/js/index.js',
    11. output: {
    12. filename: 'js/built.js',
    13. path: resolve(__dirname, 'build')
    14. },
    15. module: {
    16. rules: [
    17. // loader的配置
    18. {
    19. // 处理less资源
    20. test: /\.less$/,
    21. use: ['style-loader', 'css-loader', 'less-loader']
    22. },
    23. {
    24. // 处理css资源
    25. test: /\.css$/,
    26. use: ['style-loader', 'css-loader']
    27. },
    28. {
    29. // 处理图片资源
    30. test: /\.(jpg|png|gif)$/,
    31. loader: 'url-loader',
    32. options: {
    33. limit: 8 * 1024,
    34. name: '[hash:10].[ext]',
    35. // 关闭es6模块化
    36. esModule: false,
    37. outputPath: 'imgs'
    38. }
    39. },
    40. {
    41. // 处理html中img资源
    42. test: /\.html$/,
    43. loader: 'html-loader'
    44. },
    45. {
    46. // 处理其他资源
    47. exclude: /\.(html|js|css|less|jpg|png|gif)/,
    48. loader: 'file-loader',
    49. options: {
    50. name: '[hash:10].[ext]',
    51. outputPath: 'media'
    52. }
    53. }
    54. ]
    55. },
    56. plugins: [
    57. // plugins的配置
    58. new HtmlWebpackPlugin({
    59. template: './src/index.html'
    60. })
    61. ],
    62. mode: 'development',
    63. devServer: {
    64. contentBase: resolve(__dirname, 'build'),
    65. compress: true,
    66. port: 3000,
    67. open: true
    68. }
    69. };