美文网首页
webpack(五)-noParse-IgnorePlugin-

webpack(五)-noParse-IgnorePlugin-

作者: Raral | 来源:发表于2020-12-17 17:57 被阅读0次

20 webpack优化 noParse exclude webpack.IgnorePlugin

  1. 当需要引入第三方的包(jquery),打包时候会解析jquery是否依赖,jquery独立的模块不需要去解析
module : {
     noParse: /jquery/,//优化1   不去解析jquery中的依赖库
}

  1. 当解析js文件时,我们可以控制解析的目录
 module: {
        noParse: /jquery/,//优化1   不去解析jquery中的依赖库
        rules: [
            {
                test:/\.js$/,
                exclude:/node_modules/,//优化2  排除匹配的目录
                include: path.resolve("src"),//  包含匹配的目录
                use: {
                    loader: "babel-loader",
                    options: {
                        presets:[
                            "@babel/preset-env"
                        ]
                    }
                }
            }
        ]
    }
  1. 场景: 当我们使用moment,是一个时间工具包,内部里面把所有的语言包都引入;我们可以控制解析改包时,可以忽略调引入的文件。
  plugins: [
        //weback自带的插件 忽略
        new webpack.IgnorePlugin(/\.\/locale/,/moment/),//优化3   如果引入这个moment包时 会忽略调 locale文件
        new HtmlWebpackPlugin({
            template:"./public/index.html",

        })
    ],

    //我们要手动引入需要的语言包
    //手动引入中文包
// import "moment/locale/zh-cn";

22 ddlPlugin 插件 动态引入外部链接库

当我们使用 react react-dom 时, 我们每次打包过大 都需要引入对应的 核心包;我们要单独打包
不重复打包某些不会变动的文件,加快我们的打包速度
使用webpack的DllPlugin和DllReferencePlugin插件

//webpack.react.js 配置文件 目的生成一个 清单 

let path = require("path")
let webpack = require("webpack")
module.exports = {
    mode:"development",
    entry: {
        react: ["react", "react-dom"] //需要动态引入链接库
    },
    output: {
        filename:"_dll_[name].js",//产生文件名
        path: path.resolve(__dirname,"dist"),
        library: "_dll_[name]",//将打包好的test.js 赋值给 变量
        // libraryTarget: "var"

    },
    plugins: [
        new webpack.DllPlugin({// name = library
            name:"_dll_[name]",
            path: path.resolve(__dirname,"dist","manifest.json")
        })
    ]
}

//webpack.config.js 配置主文件 查找 动态链接接库 引用
 new webpack.DllReferencePlugin({ //查找 动态链接库
    manifest: path.resolve(__dirname, "dist", "manifest.json")
}),

//在模板提前把 清单引入
 <div id="root">
        html模板
</div>
<script src="/_dll_react.js"></script>



24 webpack自带优化

  1. import 在生产环境下 会自动去掉没用的代码,就是没有执行的代码
    tree-shaking 把没用的叶子摇晃的掉

  2. require模块 会把 返回的结果放在default
    不支持 tree-shaking

  3. scope hosting 作用域提升 生产环境

相关文章

网友评论

      本文标题:webpack(五)-noParse-IgnorePlugin-

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