前言
在前端开发过程中我们经常会使用一些第三方库和工具包来提高效率,而 npm 是目前前端开发最常用的包管理器之一,有大量的第三方包可以被使用,如 jQuery、Vue、React 等等。但是有时候使用这些库会出现一些问题,比如需求只需要其中的部分功能,但又不想全部引入导致页面加重或者冗余代码很多,这时候我们需要一种更灵活的方式来使用这些包,于是 bsify 应运而生。
bsify 是什么
bsify 是一款基于 Browserify 的前端打包工具,它能够将 npm 包中的模块(module)转换为浏览器可以使用的格式,并且在需要的时候才引入,减轻了页面的负担。 类似于 Webpack 的 lazyload 机制。
bsify 的使用
使用 bsify 可以分为两个部分:安装和使用。
安装
在命令行中输入以下代码安装 bsify。
npm install bsify --save-dev
使用
bsify 可以用命令行来使用,也可以用配置文件 bsify.config.js
来使用。接下来将介绍两种使用方式:
命令行
在命令行中输入 bsify <source file> <output file>
,其中 <source file>
为原始文件名,<output file>
为编译后的文件名。例如:
bsify main.js dist.js
这会将 main.js
编译为 dist.js
。
配置文件
在项目根目录中新建 bsify.config.js
文件,这是 bsify 的配置文件。其中,entry
表示入口文件,output
表示输出文件,aliases
表示别名,用于缩短路径。例如:
module.exports = { entry: 'src/main.js', output: { file: 'dist/bundle.js' }, aliases: { 'vue$': 'vue/dist/vue.esm.js' } };
之后在命令行中输入 bsify
即可编译所有文件。
bsify 的深度
bsify 在实现中采用了多种方式提升性能,以下是 bsify 的几个特点:
了解 Package.json 的预处理
bsify 将多次读取 package.json 的动作进行了优化,将经常需要读取的信息都预处理到了一个缓存内存中。这个缓存提高了读取 package.json 的速度,缓存的 package.json 还能够贡献给其他程序的优化。
模块化方案的淘汰
bsify 最初是建立在 Browserify 之上的,而 Browserify 一直以来使用的是 CommonJS 规范做语法层面的模块化处理。在 es6 出来之后,新式的 import/export 已经取代了 CommonJS,同时支持的向前兼容性也逐渐在不断增强。
增强了自动化操作
bsify 支持了很多自动化操作,比如 auto-prefix/-suffix,能在文档中加入一些数据,让样式可以自动添加前/后缀。使用了自带的 minify 和 uglify,自动压缩像字符串和模版的文件等等。
bsify 的指导意义
bsify 提供了一种灵活的方式使用第三方包,可以帮助我们更好的结合自己的需求来使用第三方库和工具包。同时,bsify 的优化和自动化操作,能够提高编译和运行的效率。
以下是使用 bsify 编译 Vue.js 的示例代码:
bsify ./node_modules/vue/dist/vue.js -o dist/js/vue.js
结尾
bsify 是一款实用的前端打包工具,可以方便地解决第三方库的引用问题。同时,bsify 的优化和自动化操作,也能够加快编译和运行的效率。在日常开发中,我们可以尝试使用 bsify 来更好地构建自己的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b6151ab1864dac67357