音乐分享:

B.o.B Ft. Marko Penn - 《Roll up》

——————————————————————————————————————————————————————————————

项目截图:

项目目录:

目录介绍:

 |---dist ------------------------最后文件目录
|----└──i------------------------图片目录
|----└──j------------------------最后Rollup.js的生成的js目录
|----└──index.html---------------html文件
|---node_modules-----------------node依赖目录
|---package.json-----------------包描述文件及开发者信息
|---rollup.config.js-—-----------Rollup.js的配置文件
|---src--------------------------开发文件
|----└──s------------------------sass目录
|----└──j------------------------开发js目录

流程步骤:

1、在CMD进入你所要打包文件根目录,在CMD里输入:

npm init -y

栗子截图:

2、在CMD输入安装Rollup.js插件

插件介绍:

rollup(本尊):rollup

babel (ES6转ES5) : rollup-plugin-babel、babel-preset-es2015-rollup、babel-preset-stage-0

commonjs(common的js模块):rollup-plugin-commonjs

sass(css预编译):rollup-plugin-sass、node-sass

js压缩:rollup-plugin-uglify

sever(本地服务器):rollup-plugin-serve

热更新(改代码不手动刷新浏览器):livereload、rollup-plugin-livereload

实时监听(监听文件更改):rollup-watch

 npm install babel-preset-es2015-rollup
babel-preset-stage-0
node-sass
rollup
rollup-plugin-babel
rollup-plugin-commonjs
rollup-plugin-livereload
rollup-plugin-sass
rollup-plugin-serve
rollup-plugin-uglify
rollup-watch
livereload ---save-dev

栗子截图:

生成的package.json文件:

 {
"name": "rollup-demo",
"version": "1.0.0",
"description": "",
"main": "rollup.config.js",
"scripts": {
"dev": "rollup -c --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"babel-preset-es2015-rollup": "^3.0.0",
"babel-preset-stage-0": "^6.22.0",
"node-sass": "^4.5.0",
"rollup": "^0.41.4",
"rollup-plugin-babel": "^2.7.1",
"rollup-plugin-commonjs": "^7.0.0",
"rollup-plugin-livereload": "^0.4.0",
"rollup-plugin-sass": "^0.4.9",
"rollup-plugin-serve": "^0.1.0",
"rollup-plugin-uglify": "^1.0.1",
"rollup-watch": "^3.2.2"
},
"devDependencies": {
"livereload": "^0.6.0"
}
}

3、在根目录建rollup.config.js文件并编写:

'use strict';

import babel from 'rollup-plugin-babel';	      //ES6转ES5插件;
import sass from 'rollup-plugin-sass'; //sass插件;
import commonjs from "rollup-plugin-commonjs"; //将CommonJS模块转换成ES6,防止他们在Rollup中失效;
import uglify from 'rollup-plugin-uglify'; //js压缩;
import serve from 'rollup-plugin-serve'; //serve服务;
import livereload from 'rollup-plugin-livereload';//热更新; export default {
entry: 'src/j/index.js', // 入口文件;
format: 'iife', // 打包输入格式分别为:amd,cjs,es,iife,umd;(https://github.com/rollup/rollup/wiki/JavaScript-API#format);
dest: 'dist/j/bundle.js', // 输出文件;
sourceMap: 'inline', // 调试sourceMap;
plugins: [
commonjs(), //将CommonJS模块转换成ES6;
sass({
output: './dist/c/bundle.css' //设置sass编译完成路径;
}),
babel({
babelrc: false, //不设置.babelrc文件;
exclude: 'node_modules/**', //排除node_modules文件夹;
presets: ['es2015-rollup', 'stage-0'], //转ES5的插件;
plugins: ['transform-class-properties']//转换静态类属性以及属性声明的属性初始化语法
}),
uglify(), //js压缩;
serve({
contentBase: 'dist/', //启动文件夹;
host: 'localhost', //设置服务器;
port: 10001 //端口号;
}),
livereload({
watch: 'dist/' //监听文件夹;
})
] };

4、在index.js 入口js文件 引入需要打包文件:

 'use strict';

 //启动server;
document.write('<script src="http://'
+ (location.host || 'localhost').split(':')[0] +
':5729/livereload.js?snipver=1"></' + 'script>'); import "../s/index.scss"; //sass文件;
import $ from "./jquery.min.js"; //js文件;
import * as sos from "./c.js"; //js文件; $(function(){
sos.sos('test'); //调用c.js的方法;

栗子截图:

5、在编写rollup.config.js文件 npm script:

"dev": "rollup -c --watch",

栗子截图:

6、在index.html 引入最后的css/js:

 <link rel="stylesheet" type="text/css" href="c/bundle.css">
<script type="text/javascript" src="j/bundle.js"></script>

栗子截图:

7、以上完成之后CMD输入 npm run dev 启动服务:

npm run dev

栗子截图:

浏览器打http://localhost:10001/ 就能查看

后记:

其实我个人还挺喜欢Roullp.js的

配置简单,打包js没有啥多余代码(没错 就说你呢 webpack)

还有独立css文件也能实时热更新

但是目前的插件还是太少了

参考资料:

rollup.js     :  官网

小爝       :  《使用rollup和npm scripts构建完整javascript项目》

Showonne  :  《[译]教程:如何使用Rollup打包JavaScript》

Showonne  :  [译]教程:如何使用Rollup打包样式文件并添加LiveReload

见见           :  Rollup 试炼之路

VaJoy Larn :  《冗余代码都走开——前端模块打包利器 Rollup.js 入门》

Rollup.js 实践的更多相关文章

  1. 冗余代码都走开——前端模块打包利器 Rollup.js 入门

    之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化. 殊不知在 webpack 1.X 版本是无法利用该特性来避免引 ...

  2. require.js实践

    ASP.NET MVC应用require.js实践 这里有更好的阅读体验和及时的更新:http://pchou.info/javascript/asp.net/2013/11/10/527f6ec41 ...

  3. 学习rollup.js模块文件打包

    学习rollup.js模块文件打包 一:rollup 是什么?Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码. webpack 和 Rollup 对比不同点 ...

  4. Node.js实践第一天

    实践案例一 表单提交 demo.html <!doctype html> <html> <head> <title>表单提交</title> ...

  5. r.js实践

    r.js合并实践 项目中用到require.js做生产时模块开发,但上线要合并压缩,幸好它配套有r.js.下面就其用法说明一下. 首先建一个目录,里面的结构如下: require.js可以到r.js项 ...

  6. 一个简单的 vue.js 实践教程

    https://segmentfault.com/a/1190000006776243?utm_source=tuicool&utm_medium=referral 感觉需要改善的地方有: ( ...

  7. JS实践与写博客-序

    大二的时候,就开始接触JavaScript了. 当时学了1年多,主要是认真看了一本JavaScript的入门书籍,了解了JavaScript大致怎么回事.在独自做Web项目的时候,用的都是JavaSc ...

  8. 二、JavaScript语言--JS实践--商城分类导航效果

    商城类导航菜单制作(以京东为例--竖向列表横向伸缩) 可以用两种方式来实现:用CSS实现和用JS实现 方法一:用CSS实现(要点:使用hover) <!DOCTYPE html PUBLIC & ...

  9. ASP.NET MVC应用require.js实践

    这里有更好的阅读体验和及时的更新:http://pchou.info/javascript/asp.net/2013/11/10/527f6ec41d6ad.html Require.js是一个支持j ...

随机推荐

  1. HashMap源码分析(基于jdk8)

    我们知道在jdk7中HashMap的实现方式是数组+链表.而在jdk8中,实现有所变化,使用的是数组+链表+红黑树实现的. 当链表长度达到8时转化为红黑树. static final int TREE ...

  2. LVS结合keepalive

    LVS可以实现负载均衡,但是不能够进行健康检查,比如一个rs出现故障,LVS 仍然会把请求转发给故障的rs服务器,这样就会导致请求的无效性.keepalive 软件可以进行健康检查,而且能同时实现 L ...

  3. 设置tomcat开机自启和后台运行

    前言:程序登录遇到了问题,重启服务器上的tomcat后程序可以正常的使用,是通过进入bin目录,双击startup.bat运行启动的程序,此时会弹出启动窗口,而且该窗口不能关闭,这个窗口是tomcat ...

  4. varnish与squid缓存效率对比实例

    前提:安装varnish.squid.webbench(压测工具) 注:varnish和squid机都未安装其他多余服务,服务器绑定域名为www.dannylinux.top  (为同一台服务器,测试 ...

  5. Excel vba中访问ASP.NET MVC项目,记录访问时间,文件名称

    每30秒连接一次服务器,连接成功单元格变绿色,连接失败变红色,状态单元格为17行,2列 1,打开excel文件,进入vba编辑器,新建一个modules模块,在里面先写一个每30秒执行一次ConnSe ...

  6. Ansible小记

    参考网址: https://www.iyunv.com/thread-385359-1-1.html http://blog.51cto.com/215687833/1886305

  7. vue组件之间的通信

    1.父组件给子组件传递数据 <body> <div id="app"> 父组件:{{total}} <br> <son-component ...

  8. 关于flex布局【转】

    很受用,原文链接:http://blog.csdn.net/magneto7/article/details/70854472

  9. Oracle 12c 静默安装(脚本自动化)

    oracle 12C 自动化静默安装脚本 项目地址: github: https://github.com/spdir/oracle-single-install 下载安装脚本 wget https: ...

  10. shell-计算虚拟机创建时间

    因为要验证虚拟机创建时间,所以写了下面一个脚本 #!/bin/bash ################################################################ ...