webpack配置详解 - 31.module

loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。

loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 webpack 的打包能力,对它们进行处理。

本质上,webpack loader 将所有类型的文件,转换为应用程序的依赖图(和最终的 bundle)可以直接引用的模块。

1.文件结构

 

 

2.代码

add.js

function add(x, y) {
    return x + y
}

export default add

count.js

function count(x, y) {
    return x - y
}

export default count

index.js

// import add from './add'
// import count from './count'

console.log('index.js文件加载了')

//chunkFilename 非入口文件名称
import('./add')
    //结构赋值,提取default,重命名为 add
    .then(({default:add})=>{
        console.log(add(1,2));
    })

// console.log(add(1, 2))
// console.log(count(5, 3))

webpack.config.js

const {resolve} = require('path')
const htmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    entry: './src/index.js',
    output: {
        filename: "js/[name].js",
        path: resolve(__dirname, 'build'),
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                // 多个loader用use
                use:['style-loader','css-loader']
            },
            {
                test: /\.js$/,
                //排除 node_modules 下的js文件
                exclude: /node_modules/,
                //只检查 src 下的js文件
                include: resolve(__dirname,'src'),
                //优先执行
                enforce: "pre",

                //不声明 enforce 就是中间执行

                // 延后执行
                // enforce:'post',
                // 单个loader用loader
                loader: 'eslint-loader',
                options: {}
            },
            //以下配置只有一个会生效
            {
                oneOf: []
            }
        ]
    },
    plugins: [new htmlWebpackPlugin()],
    mode: 'development'
}

 

3.打包

$ webpack

 

posted @ 2022-09-09 11:25  Evengod  阅读(83)  评论(0编辑  收藏  举报