栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

下一代 ES 模块构建工具 Rollup

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

下一代 ES 模块构建工具 Rollup

Rollup 官方声称是下一代 ES 模块打包工具。现在有很多打包工具,当然最为流行的是 Webpack,对于 Web 应用来说 Webpack 是不错的选择,但是对于开发类库来说 Rollup 是一个不错的选择。

安装

同样通过 NPM 很容易,我们也可以通过 Yarn 来安装

npm install --global rollupORyarn global add rollup
使用应用程序入口 main.js
// main.jsimport foo from './foo.js';export default function () {  console.log(foo);
}
依赖模块 foo.js
// foo.jsexport default 'hello world!';
构建
$ rollup src/main.js -o bundle.js -f cjs

上面的命令通过 -f 选项告诉编译器采用 CommonJS 方式构建输出到 bundle.js 文件中去:

'use strict';var foo = 'hello world!';var main = function () {  console.log(foo);
};module.exports = main;
rollup.config.js

对于复杂的构建,有太多的选项需要配置,这样一来通过命令行对我们来说太过复杂,我们可以通过配置文件来描述打包的过程:

在项目根目录创建文件 rollup.config.js

// rollup.config.jsexport default {    input: 'src/main.js',    output: {        file: 'bundle.js',        format: 'cjs'
    }
};

通过命令 rollup -c Rollup 会执行上述配置。

插件

我们使用 rollup-plugin-json 插件来读取 JSON 文件。

安装插件
yarn add rollup-plugin-json -D
在代码中使用插件
// src/main.jsimport { version } from '../package.json';export default function () {  console.log('version ' + version);
}
使用插件
// rollup.config.jsimport json from 'rollup-plugin-json';export default {    input: 'src/main.js',    output: {        file: 'bundle.js',        format: 'cjs'
    },    plugins: [ json() ]
};
编译结果:
'use strict';var version = "1.0.0";var main = function () {  console.log('version ' + version);
};module.exports = main;

注意:只有我们实际需要的数据——name 和 devDependencies 和 package.json 中的其它数据被忽略了。这是 tree-shaking 起了作用。

ES6

通常我们需要用高版本的语言来编写代码,Rollup 可以借助 rollup-plugin-babel 插件来完成:

安装插件及 babel
yarn add rollup-plugin-babel -D
yarn add babel-core babel-preset-env babel-preset-es2015 babel-preset-stage-2 -D
配置 rollup
// rollup.config.jsimport json from 'rollup-plugin-json';import babel from 'rollup-plugin-babel';export default {    input: 'src/main.js',    output: {        file: 'bundle.js',        format: 'cjs'
    },    plugins: [ 
        json(),
        babel({            exclude: 'node_modules/**' 
        }) 
    ]
};
配置 .babelrc

在项目根目录上增加配置 babel 配置文件:.babelrc

{    "presets": ["es2015", "stage-2"]
}

这样一来,你就可以编译 ES6 语法了。

总结

Rollup 使用起来非常简单,另外它通过 Tree-shaking 技术去除无用代码,让整个项目更佳的高效,最后它是一个非常好的类库构建工具,如果再借助 Jest 进行单元测试,我们就非常好的开发 JS 类库了。





转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/245255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号