最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • webpack开篇杂论

    正文概述 掘金(戏楼)   2021-01-13   280

    前言

    阅读之前首先我们要有以下疑问

    • webpack是什么
    • 为什么要使用webpack

    github webpack5+ts+react脚手架源码

    github.com/xiloudada/w…

    webpack核心

    webpack是一个javascript的静态模块打包器,因为本身只能处理js,json文件,有了loader概念,使用loader可以处理css,html等等一些文件类型。我们想要更多的功能,更广的任务处理,有了plugins这个概念,plugins可以让我们有各种各样的功能。开发时,有生产环境和测试环境区分,有了mode这个概念,来区分环境。

    我们为什么要使用webpack那?前端之前的开发模式,通过script标签来引入js文件,js之间没有强依赖关系,如果我们在当前的js文件引用其他js文件的变量或方法,那么被引用的js文件顺序一定要在当前使用的js文件之前先加载,随着项目的越来越大,依赖关系越来越复杂,模块化的概念可以让js文件之间相互引用,不用担心排列顺序。浏览器如果加载很多的js文件,会影响页面的加载速度,webpack可以把多个关联的文件打包在一起,减少文件的数量,提升加载速度。

    entry

    入口告诉webpack从哪个模块作为构建内部依赖图的开始,可以配置多个入口,webpack5如果不配置默认为src/index文件

    module.exports = {
      entry: {
        app: './src/index.tsx',
        b: './src/app.tsx',
      },
    };
    
    

    output

    output属性告诉webpack在哪里输出它创建的bundle,如何命名这些文件,webpack5可以不进行配置,会默认输出到dist目录下

    module.exports = {
      output: {
        filename: 'js/[chunkhash:10].bundle.js',
        path: resolve(__dirname, 'dist'),
      },
    };
    
    

    loader

    loader能够让webpack处理那些非javascript文件,把它们转换成webpack能够处理的模块,然后利用webpack打包的能力对他们进行处理,loader需要安装,例如css-loader

    module.exports = {
      module: {
        rules: [
          {
            // 剥离css代码,配置了MinCssExtractPlugin.loader,就不需要style-loader
            test: /\.css$/,
            use: [{ loader: MinCssExtractPlugin.loader }, { loader: 'css-loader' }],
            include: resolve(__dirname, 'src'),
            exclude: /node_modules/,
          },
          {
            test: /\.html$/,
            loader: 'html-loader',
          },
        ],
      },
    };
    

    plugins

    插件可以执行范围更广的任务,例如:压缩,去除空格,

    module.exports = {
      plugins: [
      // 会自动创建一个html文件,把webpack打包后的文件自动插入到html文件中
        new HtmlWebpackPlugin({ template: 'public/index.html' }),
        }),
      ],
    };
    

    mode

    通过选择生产环境或者开发环境来使用webpack内置的优化,也可以做环境区分

    module.exports = {
      mode: 'development', // 选择开发环境
    };
    };
    

    总结

    • webpack可以处理模块之间的相互依赖关系,把多个相互关联的文件打包成一个,减少请求次数
    • entry入口告诉webpack从那个模块开始构建依赖图
    • output告诉webpack输出到哪里,输出文件命名
    • loader 处理webpack不能识别的文件,转化成webpack可以处理的内容
    • plugins 执行范围更广的任务,
    • mode 选用开发环境和生产环境

    webpack的基本使用使用以上核心的功能,在其上面添加不同的功能,配置loader,配置plugins,来丰富webpack的功能


    起源地下载网 » webpack开篇杂论

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元