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

如何写代码做网站/营业推广方案

如何写代码做网站,营业推广方案,自带浏览器建设银行网站打不开,天津网站建设电话咨询一、为什么选用rollup roll-up是下一代JavaScript模块打包工具。开发者可以在你的应用或库中使用ES2015模块,然后高效地将它们打包成一个单一文件用于浏览器和Node.js使用。 Rollup最令人激动的地方,就是能让打包文件体积很小。这么说很难理解&#xff…

一、为什么选用rollup

roll-up是下一代JavaScript模块打包工具。开发者可以在你的应用或库中使用ES2015模块,然后高效地将它们打包成一个单一文件用于浏览器和Node.js使用。 Rollup最令人激动的地方,就是能让打包文件体积很小。这么说很难理解,更详细的解释:相比其他JavaScript打包工具,Rollup总能打出更小,更快的包。因为Rollup基于ES2015模块,比Webpack和Browserify使用的CommonJS模块机制更高效。两者相比,就打包出来的文件可读性就完全不一样。

Webpack是一个面向多种文件类型的复杂的应用打包工具。各种文件类型,只要配置了loader,即可以进行自定义的加载,将所有的文件打包成应用。

我们这里是要进行类库的打包,即只打包一堆class,所以我们选用roll-up。文末会附上github源码。

二、项目结构

|--buildrollup.config.dev.js
|--src|--classesAnimal.jsCat.jsDog.jsPoodleDog.jsindex.jspackage.json

对,我们用最简单的代码实现打包功能。

1 rollup配置文件

首先看package.json。只需要配置一个roolup.config.dev.js即可以实现配置。寻找build下的roolup.config.dev.js.

package.json

 "scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "rollup -c ./build/rollup.config.dev.js"},

roolup.config.dev.js

import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import json from 'rollup-plugin-json';export default {entry: 'src/index.js',moduleName: 'Animals',format: 'umd',dest: 'dist/animals.js',plugins: [resolve({browser: true,}),json(),commonjs(),babel({exclude: 'node_modules/**',}),],sourceMap: true,
};

这里我们引用了rollup的4个依赖包,我会在下面详细解释。当然我们需要在package.json中添加或者手动安装。当然roll-up的主包必须包含。要想使用es2015 那么babel-preset-es2015-rollup必须被包含。最终的package.json中的devDependencies为下:

"devDependencies": {"babel-preset-es2015-rollup": "^3.0.0","rollup": "^0.41.6","rollup-plugin-babel": "^2.7.1","rollup-plugin-commonjs": "^8.0.2","rollup-plugin-json": "^2.3.0","rollup-plugin-node-resolve": "^3.0.0"},

对。就这几个依赖包。我们就可以完成项目类库的打包。

1 entry

顾名思义 entry就是项目打包的主入口。这里我们从index.js开始。

2 moduleName

打包的模块名称

3 format

打包后的文件支持的运行环境。
rollup 提供了三种选项

cjs: node.js 环境
iife: 浏览器环境
umd: 兼容环境, 同时支持 node.js 和浏览器

这个配置关系到我打包后的文件的运行环境。我们希望我们的类库既能被nodejs直接使用,又能在浏览器中使用,那么我们就使用umd的配置项。

4 dest

打包输出的目录。

5 sourceMap

配置该项之后,打包同时会生成map文件,这样可以在浏览器中方便进行调试。

6 plugins

这里是重点。我们这里用了4个插件

rollup-plugin-node-resolve:

rollup无法识别node_modules中的包,需要安装插件npm install --save-dev rollup-plugin-node-resolve,然后在plugins中使用:

rollup-plugin-commonjs:
node_modules中的包大部分都是commonjs格式的,要在rollup中使用必须先转为ES6语法,为此需要安装插件 rollup-plugin-commonjs

rollup-plugin-json:
通过该插件可以从JSON文件中导入数据(比如:package.json)

示例
import { version } from "../package.json"export default function () {console.log( 'current version is ' + version );
}

rollup-plugin-babel:
最基本的es6语法转化器。这里可以进行bable的基本配置。

就这么简单,roll-up已经配置完了。

2 classes

目录下有几个文件,都是根据es6语法写的继承类。

animal.js


export default class Animal {constructor(name) {this.name = name;}run() {console.log(`i am run`)}brake() {console.log('i am brake');}};

Dog.js

import Animal from "./Animal";export default class Dog extends Animal{constructor(name) {super();this.name = name;}brake() {console.log('汪汪汪');}};

Cat.js

import Animal from "./Animal";export default class Cat extends Animal{constructor(name) {super();this.name = name;}brake() {console.log('miao miao miao');}};

PoodleDog.js

import Dog from "./Dog";export default class PoodleDog extends Dog{constructor(name) {super();this.name = name;}brake() {console.log('喔喔喔');}};

3 index.js

这里是入口文件 我们将类进行导出。

import Dog from './classes/Dog'
import Cat from './classes/Cat'
import PoodleDog from './classes/PoodleDog'
const Animals = {Dog,Cat,PoodleDog
};export default Animals;

完成。

三、运行

执行npm run build,在dist目录下生成了我们想要的文件。
在这里插入图片描述

可以看到 class语法已经被转译成了浏览器可以识别的语法:

在这里插入图片描述

到此。即可以在浏览器 或者nodejs中应引用类库了。

四、结语

类库的封装很重要。对于开发sdk是必不可少的一项技能。本人在写一套关于彩票算法的sdk。目前主要框架已经搭建完成。后续完成之后我会考虑开源。对于github上也有该示例的一套模板,大家可以进行下载,修改类即可直接使用。
项目地址

http://www.jmfq.cn/news/4895101.html

相关文章:

  • 网站建设合同标准版/站长之家音效
  • 整站seo哪家服务好/推广平台 赚佣金
  • 做程序开发的网站/百度seo学院
  • html5购物网站模板/搭建网站工具
  • 台州做网站是什么/关于seo如何优化
  • 做职业规划的网站/免费获客软件
  • 郑州网站南京网站建设/免费建站网站大全
  • 织梦网站模板免费/品牌宣传方式
  • 深圳龙岗区最新疫情最新消息/seo技术代理
  • 传奇版本网页游戏/seo门户网站优化
  • 手机网站如何做才能兼容性各种手机/google 推广优化
  • 美食网站代做/长尾关键词挖掘站长工具
  • 工程项目管理软件app/苏州seo网络推广
  • 网站关键字优化公司/专业网站快速
  • 长沙建设公司网站/小程序搭建
  • 找外贸客户的网站/网络推广工作能长久吗
  • 保定建设工程信息网站/网页免费制作网站
  • 竹山县建设局网站/电商推广平台有哪些
  • 58同城石家庄网站建设/soe搜索优化
  • 百度验证网站/开发新客户的十大渠道
  • 做外贸网站特色/网络营销师是做什么的
  • 制作网站的页面设计怎么做/需要留电话号码的广告
  • 建设银行怎么在网站设置限额/百度推广价格价目表
  • 建设个普通的网站得多少钱/小程序生成平台系统
  • 网站建设如何自学/seo优化大公司排名
  • 昆山做网站需要多少钱/网络营销的模式有哪些?
  • 北京66中网站做的不怎么样呀/直通车推广怎么收费
  • 高端电商网站开发/官网关键词优化价格
  • 基金公司网站建设/杭州seo的优化
  • 人才网站开发/怎么在网上推广产品