[Webpack] 打包生成的文件模块类型

1. 最终js文件

webpack+babel可以将多个ES6 module打包成一个js文件。
默认情况下,这个js文件的功能是向一个名为Library的变量赋值。

var Library = xxx;

我们可以通过配置webpack,让最终的js文件具有不同的表现形式。

2. output.libraryTarget

它可以有以下几种取值:(默认值为var
(1)var,对一个变量赋值var Library = xxx
(2)this,设置thisLibrary属性,var Library = xxx
(3)commonjs,设置exportsLibrary属性,exports["Library"] = xxx
(4)commonjs2,设置module.exports = xxx
(5)amd,导出为AMD格式
(6)umd,导出为AMD,CommonJS2,以及全局对象的一个属性(后面进行解释

3. umd示例

3.1 配置

我们先配置webpack.config.js文件中的libraryTargetumd

...

module.exports = {
    ...
    output: {
        ...
        libraryTarget: 'umd'
    },
    ...
};

3.2 导出

webpack必须指定编译的入口文件,
从这个文件开始,把它所依赖的模块编译打包成一个最终文件,
一般在webpack.config.js文件中,配置entry即可。

假设入口文件为index.js,打包后的最终文件为target.js
我们需要在入口文件中,一般要将对象通过默认和非默认的方式各导出一次

// index.js
const v = 1;

export default v;    // 保证默认导入“import v”可用
export { v };     // 保证“window.v”可用

3.3 使用方式

(1)ES5中直接使用target.js
假如用户想直接在浏览器中使用该模块,
它可以通过加载js,
然后在随后的

你可能感兴趣的:([Webpack] 打包生成的文件模块类型)