r.js压缩打包
AMD模块化开发中的代码压缩打包工具——r.js
环境搭建基于nodejs;用于AMD模块化开发中的项目文件压缩打包,不是AMD模式也是可以的
javascript部分
压缩javascript项目开发文件夹
build.js压缩打包配置文件,文件名可随意
({
appDir : './', //基于build,根目录
baseUrl : './project', //基于appDir,项目目录
dir : './project.min', //基于build,输出目录
locale : 'en-us', //国际化配置
optimize: 'uglify', //压缩方式
paths : {
underscore: '../underscore.min',
backbone : '../backbone.min',
jquery : '../jquery.min',
...
},
modules: [
{
name: 'main' //配置
},
{
name: './controller/init' //控制器
},
{
name: './view/index' //首页
},
...
]
})
build.js里baseUrl值最好设置为与main.js里baseUrl值一样的路径,这样paths可以直接复制过来,否则需要重新为每个模块配置相对路径
modules设置合并压缩模块,配置相对路径时需基于baseUrl
所有设置的模块(即文件,下同),该模块与其所有依赖模块会被合并压缩;没有设置的模块,该模块会直接压缩,而不会与其依赖模块合并压缩
r.js提供了以下几种optimize值,即压缩方式
none:不压缩代码
uglify:使用UglifyJS,默认
closure:使用Google's Closure Compiler,简单优化
closure.keepLines:使用Closure,换行
模块配置(个人方案,欢迎讨论完善)
我们的项目分为3大模块,入口配置模块main,控制器模块controller,视图模块view
main合并压缩了框架、插件及入口配置模块;该文件一旦完成极少改动,保留缓存更佳,设置urlArgs后文件也不会有版本号
controller合并压缩了公用模块及控制器模块;设置urlArgs后文件有版本号清除缓存
view合并压缩了模型及视图模块;设置urlArgs后文件有版本号清除缓存
压缩单个javascript文件
({
appDir : './', //基于build,根目录
baseUrl : './project', //基于appDir,项目目录
name : './view/index', //基于baseUrl,项目文件
out : './view/index.min', //基于baseUrl,输出文件
locale : 'en-us', //国际化配置
optimize: 'uglify', //压缩方式
paths : {
underscore: '../underscore.min',
backbone : '../backbone.min',
jquery : '../jquery.min',
...
}
})
开始压缩javascript文件
命令行进入文件所在文件夹,命令行运行node,找到r.js;直接处理配置文件
node r.js -o build.js
没有配置文件,直接压缩javascript文件
node r.js -o baseUrl=project name=view\index out=view\index.min.js optimize=uglify
bat一键压缩打包
运行需基于bat文件的当前所在目录
cd ..\project\static\js
node r.js -o build.js
css部分
开始压缩css文件
命令行进入文件所在文件夹,命令行运行node,找到r.js;cssIn指向待压缩的文件,out指向压缩后的文件,如压缩后的文件找不到则会自动生成
node ..\js\r.js -o cssIn=index.css out=index.min.css optimizeCss=standard
相对路径什么的一定要找对,不然会报错
r.js提供了以下几种optimizeCss值,即压缩方式
none:不压缩,仅合并
standard:标准压缩 去换行、空格、注释
standard.keepLines:除标准压缩外,保留换行
standard.keepComments:除标准压缩外,保留注释
standard.keepComments.keepLines:除标准压缩外,保留换行注释
bat一键压缩打包
注意情况同上
cd ..\project\static\css
node ..\js\r.js -o cssIn=index.css out=index.min.css optimizeCss=standard
node ..\js\r.js -o cssIn=login.css out=login.min.css optimizeCss=standard
node ..\js\r.js -o cssIn=detail.css out=detail.min.css optimizeCss=standard
r.js压缩打包的更多相关文章
- r.js压缩打包(require + backbone)项目开发文件
最近项目稳定了一点,之前一直没空关注的开发文件压缩打包问题也有时间来解决了 AMD模块化开发中的代码压缩打包工具——r.js 环境搭建基于nodejs:用于AMD模块化开发中的项目文件压缩打包,不是A ...
- 【实践】require.js + r.js 代码打包压缩初体验
第二个分享的是学校项目所接触到的新知识,代码压缩 + 代码打包 这次的项目用了require.js 这个插件做模块化管理的工具,所谓模块化就是在开发的过程中将功能划分成一个独立的模块,使代码可读性更强 ...
- 使用r.js来打包模块化的javascript文件
前面的话 r.js(下载)是requireJS的优化(Optimizer)工具,可以实现前端文件的压缩与合并,在requireJS异步按需加载的基础上进一步提供前端优化,减小前端文件大小.减少对服务器 ...
- FastAdmin 中 的 layer js 使用 r.js 压缩出现的问题
FastAdmin 中 的 layer js 使用 r.js 压缩出现的问题 https://fly.layui.com/jie/2120/ layer是requirejs压缩文件r.js里面的关键字 ...
- webpack配置:css文件打包、JS压缩打包和HTML文件发布
一.CSS文件打包 1.在src下新建css文件,在css文件下新建index.css文件,输入以下代码 body{ color:red; font-size:20px; } 2.css建立好后,需要 ...
- JavaScript模块化-require.js,r.js和打包发布
在JavaScript模块化和闭包和JavaScript-Module-Pattern-In-Depth这两篇文章中,提到了模块化的基本思想,但是在实际项目中模块化和项目人员的分工,组建化开发,打包发 ...
- mvc BundleConfig实现对Css、Js压缩打包加载
Bundle不是.net Framework框架中的一员,使用Bundle首先要先添加引用,如下: nuget包管理--程序包管理控制台--Install-Package Microsoft.AspN ...
- requirejs原理深究以及r.js和gulp的打包【转】
转自:http://blog.csdn.net/why_fly/article/details/75088378 requirejs原理 requirejs的用法和原理分析:https://githu ...
- require.js+backbone 使用r.js 在本地与生产环境 一键压缩的实现方式
require.js+backbone 使用r.js 在本地与生产环境 一键压缩的实现方式 时间:2017-07-03 17:18:11 阅读:210 评论:0 收藏:0 ...
随机推荐
- BZOJ3156 防御准备 斜率优化dp
Description Input 第一行为一个整数N表示战线的总长度. 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai. Output 共一个整数,表示最小的战线花费值. Sampl ...
- C++_函数4-函数重载与函数模板
函数重载 多个函数,函数名相同,但是调用的时候,参数不同. 函数多态是C++在C语言的基础上新增的功能.多态指的是有多种形式,因此函数多态允许函数可以有多种形式.术语“函数重载”指的是可以有多个同名的 ...
- JAVA数据结构--冒泡排序
冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行 ...
- Party All the Time(三分)
In the Dark forest, there is a Fairy kingdom where all the spirits will go together and Celebrate th ...
- bzoj1079 着色方案 记忆化搜索(dp)
题目传送门 题目大意: 有k种颜色,每个颜色ci可以涂个格子,要求相邻格子颜色不能一样,求方案数.ci<=5,k<=15. 思路: 题目里最重要的限制条件是相邻格子颜色不能相同,也就是当前 ...
- bzoj3098 Hash Killer II 生日共计
题目传送门 题目大意: 让你构造一个字符串,使字符串在题目给出的哈希条件下统计出错. 思路:生日攻击,结论题,尚未理解. #include<bits/stdc++.h> #define C ...
- asp.net mvc 静态化
静态化的基本理解就是,常用的资源以文本形式保存,客户端访问时无需经过程序处理,直接下载 但是不存在的文件需要经过程序处理,文件内容如果需要有更动或删除,则直接删除文件本身 1.IIS Express ...
- 04-树5 Root of AVL Tree (25 分)
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...
- python - 约瑟夫问题
在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中.39个犹太人决定宁愿死也不要被敌人俘虏,商定一种特殊的方式自杀,41个人排成一个圆圈,由第1个人开始报数,每报到第3人该人就必须自 ...
- GreenPlum 大数据平台--运维(三)
一,操作命令 01,启动gpstart 参数说明 COMMAND NAME: gpstart Starts a Greenplum Database system. ***************** ...