小生愛

  


            let path = require('path')

            module.exports = {
              // context: 如果不通过path.resolve 配置入口访问路径 watch: true失效
              context: path.resolve('./app1'),

              entry: {
                index: './index.js',
                mobile: path.resolve('./app2/mobile.js')
              },

              output: {
                // filename: 编译的文件名 仅用于命名每个文件
                // [name]: 多入口形式 入口文件名替换这里的name 
                // [chunkhash]: 入口文件的hash值
                filename: '[name].bundle.js',
                // 包存放的目录
                path: path.resolve('./lx'),
                // 非入口的文件名 某个文件不在入口文件 又需要打包时通过该入口起文件名打包
                chunkFilename: '[id].bundle.js'
              },

              module: {
                // 定义正则 忽略该正则匹配的文件不需要 loader 解析
                // 可以定义任何不需要loader解析的文件格式
                // noParse: /\.jsx$/  不解析所有js文件
                noParse: /\.css$/,

                rules: [
                  {
                    // 匹配条件
                    // 一个单独的字符串
                    // include: path.resolve(__dirname, "css")
                    // 一个字符串数组
                    include: [
                      path.resolve(__dirname, "css")
                    ],
                    // 匹配一个正则表达式
                    // test: /\.css$/,
                    use: [
                      {loader: 'style-loader'},
                      {
                        loader: 'css-loader',
                        // query 是 options的别名 已被options替代
                        options: {
                          // 是否开启 解析 @import加载CSS
                          modules: true 
                        }
                      }
                    ]
                  },

                  {
                    test: /\.js$/,
                    loader: 'babel-loader',
                    query: {
                      presets: ['es2015']
                    }
                  }
                ]
              },

              watch: true
            }