RequireJS的define 以及require 对于咱们进行简化JavaScript 开发,进行模块化的处理具备很大的帮助javascript
可是请求加载的js 文件会有一些影响,通常的处理是对于文件进行压缩,可是requirejs 的压缩不是简单的css
进行压缩就行。html
RequireJS提供了一个打包压缩工具r.js来对模块进行合并压缩。r.js很是强大,不但能够压缩js,css,甚至java
能够对整个项目进行打包。node
使用的方法为:npm
1. 项目结构app
文件说明:模块化
model 中的为 定义的模块工具
main.js 为页面加载须要使用的requirejs
appinfo.js 内容为:
define(function () { var appinfo = { name: "dalnog", age: 22 }; return appinfo; });
refjs.js 内容为:
define(["model/user"], function (user) { var myinfo = { userinfo: user }; return myinfo; });
user.js 内容为:
define(function () { var user = { name: "dalnog", age: 22 }; return user; });
index.htm 页面信息以下:
<!DOCTYPE > <html > <head> <title></title> </head> <body> // 压缩的使用方法 <!-- <script data-main="dalongappinfo-built" src="Scripts/require.js" type="text/javascript"></script>--> // 默认的使用方法 <script data-main="main" src="Scripts/require.js" type="text/javascript"></script> </body> </html>
压缩的方法:
1. 安装node
2. 运行npm 安装 requirejs 自带r.js
命令为: npm install -g requirejs
3. 配置 命令文件 config.js
信息为:
({ baseUrl: ".", /// 文件的路径 name: "main", /// 入口文件 就是main.js /// 实际压缩以后使用的js 文件 out: "dalongappinfo-built.js" })
4. 运行命令 node r.js -o config.js
以后生成对应的文件: dalongappinfo-built.js
5. 使用:
见上面的 index.htm
命令参数解析:
下面咱们对命令分别来作一下解释:
-o: 表示优化,该参数是固定的,必选。
baseUrl:指存模块的根目录,可选。
name: 模块的入口文件,这里是app,那么r.js会从baseUrl+name去查找app.js,而后找出全部依赖的模块,而后进行合并与压缩。
out: 指合并压缩后输出的文件路径,这里是直接输出在根目录下build.js 咱们也能够输出到其余目录下 好比js/app 目录下,也能够的。