当前位置: 首页 > news >正文

投票活动网站怎么做品牌网站建设哪家好

投票活动网站怎么做,品牌网站建设哪家好,免费linux云服务器,商场设计效果图使用Rollup打包JavaScript rollup是一款小巧的javascript模块打包工具,更适合于库应用的构建工具;可以将小块代码编译成大块复杂的代码,基于ES6 modules,它可以让你的 bundle 最小化,有效减少文件请求大小,vue在开发的时候用的是webpack,但是…

使用Rollup打包JavaScript

rollup是一款小巧的javascript模块打包工具,更适合于库应用的构建工具;可以将小块代码编译成大块复杂的代码,基于ES6 modules,它可以让你的 bundle 最小化,有效减少文件请求大小,vue在开发的时候用的是webpack,但是最后将文件打包在一起的时候用的是 rollup.js

全局安装

npm install --global rollup

创建第一个bundle,创建main.js

console.log(111);

执行 rollup --input main.js --output bundle.js --format cjs, 该命令编译 main.js 生成 bundle.js, --format cjs 意味着打包为 node.js 环境代码, 请观察 bundle.js 文件内容

'use strict'
console.log(111);

命令行参数简介:

  • 输入(input -i/–input)
    String 这个包的入口点 (例如:你的 main.js 或者 app.js 或者 index.js)

  • 文件(file -o/–output.file)
    String 要写入的文件。也可用于生成 sourcemaps,如果适用

  • 格式(format -f/–output.format)
    关于format选项
    rollup提供了五种选项:

格式化成如下文件

  • amd – 异步模块定义,用于像RequireJS这样的模块加载器
  • cjs – CommonJS,适用于 Node 和 Browserify/Webpack
  • es – 将软件包保存为ES模块文件
  • iife – 一个自动执行的功能,适合作为

使用配置文件

rollup.config.js

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

执行 rollup -c rollup.config.js启动配置项;

rollup 提供了 --watch / -w 参数来监听文件改动并自动重新打包

使用rollup插件

rollup.config.js

npm install --save-dev rollup-plugin-json

我们用的是 --save-dev 而不是 --save,因为代码实际执行时不依赖这个插件——只是在打包时使用。

在配置文件中启用插件

import json from 'rollup-plugin-json';
export default {input: './main.js',output: {file: 'bundle.js',format: 'umd'},plugins: [json(),],
}

新建文件 data.json

{"name": "xiaoming","age": 12
}

在main.js 引入 data.json

import { name } from './data.json';
console.log(name);

执行 rollup -c rollup.config.js,并查看 bundle.js

(function (global, factory) {typeof exports === 'object' && typeof module !== 'undefined' ? factory() :typeof define === 'function' && define.amd ? define(factory) :(factory());
}(this, (function () { 'use strict';var name = "xiaoming";console.log(name);})));

看到bundle中仅引用了data.json中的name字段,这是因为rollup会自动进行 Tree-shaking,main.js中仅引入了name,age并没有没引用,所以age并不会被打包

rollup基础插件

  • rollup-plugin-alias: 提供modules名称的 alias 和reslove 功能
  • rollup-plugin-babel: 提供babel能力
  • rollup-plugin-eslint: 提供eslint能力
  • rollup-plugin-node-resolve: 解析 node_modules 中的模块
  • rollup-plugin-commonjs: 转换 CJS -> ESM, 通常配合上面一个插件使用
  • rollup-plugin-serve: 类比 webpack-dev-server, 提供静态服务器能力
  • rollup-plugin-filesize: 显示 bundle 文件大小
  • rollup-plugin-uglify: 压缩 bundle 文件
  • rollup-plugin-replace: 类比 Webpack 的 DefinePlugin , 可在源码中通过 process.env.NODE_ENV 用于构建区分 Development 与 Production 环境.

rollup于其他工具集成

打包npm 模块

于webpack和Browserify不同, rollup 不会去寻找从npm安装到你的node_modules文件夹中的软件包;
rollup-plugin-node-resolve 插件可以告诉 Rollup 如何查找外部模块

npm install --save-dev rollup-plugin-node-resolve

打包 commonjs模块

npm中的大多数包都是以CommonJS模块的形式出现的。 在它们更改之前,我们需要将CommonJS模块转换为 ES2015 供 Rollup 处理。
rollup-plugin-commonjs 插件就是用来将 CommonJS 转换成 ES2015 模块的。
请注意,rollup-plugin-commonjs应该用在其他插件转换你的模块之前 - 这是为了防止其他插件的改变破坏CommonJS的检测

npm install --save-dev rollup-plugin-commonjs

使用babel

使用 Babel 和 Rollup 的最简单方法是使用 rollup-plugin-babel

npm install --save-dev rollup-plugin-babel

新建.babelrc

{"presets": [["latest", {"es2015": {"modules": false}}]],"plugins": ["external-helpers"]
}
  • 首先,我们设置"modules": false,否则 Babel 会在 Rollup 有机会做处理之前,将我们的模块转成 CommonJS,导致 Rollup 的一些处理失败
  • 我们使用external-helpers插件,它允许 Rollup 在包的顶部只引用一次 “helpers”,而不是每个使用它们的模块中都引用一遍(这是默认行为)
    运行 rollup之前, 需要安装latest presetexternal-helpers插件
npm i -D babel-preset-latest babel-plugin-external-helpers

一个简单的配置项

import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import babel from 'rollup-plugin-babel';
import json from 'rollup-plugin-json';
export default {input: './main.js',output: {file: 'bundle.js',format: 'umd'},watch: {exclude: 'node_modules/**'},plugins: [resolve(),commonjs(),json(),babel({exclude: 'node_modules/**',plugins: ['external-helpers'],}),],
}

rollup优势

  • 自动 Tree-shaking(Tree-shaking, 也被称为 “live code inclusion,” 它是清除实际上并没有在给定项目中使用的代码的过程,但是它可以更加高效。)
  • 打包速度快
  • 配置简单

rollup VS webpack

rollup更适合构建javascript库,也可用于构建绝大多数应用程序;但是rollup 还不支持一些特定的高级功能,尤其是用在构建一些应用程序的时候,特别是代码拆分和运行时态的动态导入 dynamic imports at runtime.如果你的项目中需要这些功能,则使用webpack更为适合;

http://www.khdw.cn/news/24245.html

相关文章:

  • wordpress主题添加评论舟山百度seo
  • 做网络私活的网站东莞网络推广代运营
  • 做健康类网站怎么备案世界足球排名前十名
  • 电子商务旅游网站建设策划书网盘资源共享网站
  • 深圳网站建设吗网络服务运营商
  • 本科生网站建设毕业论文百度账户推广登陆
  • 做动车哪个网站查专业推广引流团队
  • 全国可信网站seo新方法
  • 潮州哪里做网站成品网站货源1
  • 中信建设有限责任公司定州seo查询官方网站
  • vi设计用什么软件手机优化大师官网
  • 临漳网站建设网上推广app
  • 福田附近公司做网站建设哪家效益快南宁白帽seo技术
  • wordpress 漏洞 扫描优化网站首页
  • 建做一个av网站百度app浏览器下载
  • 营销推广seo英文关键词seo
  • 聂教练做0网站网络营销推广策划步骤
  • 北京网站建设哪家比较好站长之家查询域名
  • 网站管理 地址:百度广告投放电话
  • 用符号做照片的网站seo优化运营
  • 做知乎网站社区要多少钱网络营销是以什么为中心
  • 动态电子商务网站建设报告手机网站制作软件
  • 至尊传奇手游官方正版下载推推蛙seo
  • 微店网站开发萧山市seo关键词排名
  • 怎么问客户做不做网站域名注册平台有哪些
  • 全平台响应式网站建设社会化媒体营销
  • 贵港网站开发游戏推广员骗局
  • 甘肃全省娱乐场所恢复经营最好的优化公司
  • 厦门找一家做网站的公司北京百度推广官网首页
  • 网站建设中忽略的字体违法行为优化人员是什么意思