美文网首页web前端webpack笔记
webpack4(四):解析模块resolve

webpack4(四):解析模块resolve

作者: 姜治宇 | 来源:发表于2020-12-12 13:18 被阅读0次

    resolve是webpack比较关键的一个配置。webpack在启动后会从配置的入口模块出发,寻找所有依赖的模块,resolve就是配置webpack如何来寻找模块所对应的文件的
    比如:

    //index.js
    import 'bootstrap';
    

    这段代码蕴含了这样一些信息:
    1、从哪里找文件?
    boostrap文件是从当前路径找呢?还是特定的某个路径?
    2、文件扩展名是什么?
    需要引入的是bootstrap.js?还是bootstrap.css?
    3、文件的加载顺序是怎样的?
    如果在不同文件夹下寻找到相同的文件名,比如dist/css/bootstrap.css、dist/js/bootstrap.js,都叫bootstrap,那是先加载css呢还是js?
    这些问题,resolve可以帮我们搞定。

    let path = require('path'); //node的path模块
    module.exports = {
        mode: 'development',//模式,默认两种 production和development
        entry: './src/index.js', //入口
        output: {
            filename: 'bundle.js', //打包后的文件名,名字随便起
            path: path.resolve(__dirname, 'build') // 必须是绝对路径
        },
        module: { //配置loader
            rules: [
                {
                    test: /\.css$/,
                    use: ['style-loader', 'css-loader' ]
                }  
            ] 
        },
        resolve: { //解析第三方包
            modules: [ //配置 Webpack 去哪些目录下寻找第三方模块
                path.resolve('node_modules'),//只从node_modules下面找
                //path.resolve('others') //还可以是自定义的其他目录
            ],
            mainFields:['style','main'], // 配置加载顺序
            extensions: ['.css', '.js', '.json'] // 省略扩展名,比如:import {xx} from './src/index'
        }
    }
    
    
    bootstrap的package.json是这样的: 1607749669(1).png

    我们通过mainFields可以配置加载顺序,extensions可以配置扩展名。

    相关文章

      网友评论

        本文标题:webpack4(四):解析模块resolve

        本文链接:https://www.haomeiwen.com/subject/ievegktx.html