webpack 的externals配置

2018-05-17  本文已影响0人  magicwager

为什么要配置externals

webpack 中的 externals 配置提供了不从 bundle 中引用依赖的方式。解决的是,所创建的 bundle 依赖于那些存在于用户环境(consumer environment)中的依赖。

怎么理解呢,意思是如果需要引用一个库,但是又不想让webpack打包(减少打包的时间),并且又不影响我们在程序中以CMD、AMD或者window/global全局等方式进行使用(一般都以import方式引用使用),那就可以通过配置externals。

这样做的目的就是将不怎么需要更新的第三方库脱离webpack打包,不被打入bundle中,从而减少打包时间,但又不影响运用第三方库的方式,例如import方式等。

externals支持模块上下文的方式

怎么运用externals

例如:

index.html中引入CDN的资源react全家桶之类的资源

      <script src="https://lib.baomitu.com/react/16.4.0-alpha.7926752/cjs/react.development.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.3.2/cjs/react-dom-server.browser.development.js
"></script>
     

webpack.config.js配置如下:

  module.exports = {
     ...
     output: {
       ...
     },
     externals : {
       react: 'react',
       redux: 'redux'
     }
     ...
   }

这样的话在应用程序中依旧可以以import的方式(还支持其他方式)引用:

import React from 'react';
import { createStore, combineReducers, applyMiddleware } from 'redux';

这样不仅之前对第三方库的用法方式不变,还把第三方库剥离出webpack的打包中,从而加速webpack的打包速度。

externals和libraryTarget的关系

上一篇下一篇

猜你喜欢

热点阅读