最近用requirejs做了一个项目,实现了模块化的开发方式,通过声明将依赖引入,有效的管理了各个模块之间的依赖关系,开发也有条不紊的进行,但是最近要上线,就面临着一个打包的问题,因为js模块化,导致js文件很多,所以要将其压缩成一个文件。
一、压缩js
1、首先你要先有nodejs环境,没有可以去装一个
2、你得下载R.js
3、新建一个build.js
({
baseUrl: "../src/main/webapp/static/js",
name: "app",
out: "../src/main/webapp/static/js/main.js"
})
4、创建一个app.js文件,把需要打包的模块都引入
define(['A','B','C','D','E'], function () {
})
把R.js 跟 build.js 丢一起,然后运行终端命令
node build/r.js -o build/build.js
最后会生成一个main.js文件,这个文件就是打包压缩后的js文件,在页面引入即可。
二、压缩css
1、创建一个styles.css文件,里面导入你需要压缩的css
@import "bootstrap.min.css";
@import "easyui/easyui.css";
@import "jquery.dataTables.min.css";
@import "font-awesome.min.css";
@import "main.css";
@import "metisMenu.min.css";
然后运行命令
node build/r.js -o cssIn=src/main/webapp/static/css/styles.css out=src/main/webapp/static/css/all.css optimizeCss=standard
之后会生成一个all.css文件,在页面引入即可。
但是,但是这有一个问题,就是每次打包我都需要修改引入的js、css文件路径,这好像有点不科学
于是我便创建了一个开发跟发布用的jsp文件,代码里面直接引入开发的jsp,然后在打包的时候把这两个文件名替换一下,打包完再改回来,就行了,既然有了解决思路,那就简单了,我这里开发的文件叫css-js.jsp,生产的文件叫css-js.production.jsp,通过下面的命令即可然后打包工作
mv src/main/webapp/WEB-INF/jsp/common/css-js.jsp src/main/webapp/WEB-INF/jsp/common/css-js.dev.jsp
mv src/main/webapp/WEB-INF/jsp/common/css-js.production.jsp src/main/webapp/WEB-INF/jsp/common/css-js.jsp
call mvn package -Dmaven.test.skip=true
mv src/main/webapp/WEB-INF/jsp/common/css-js.jsp src/main/webapp/WEB-INF/jsp/common/css-js.production.jsp
mv src/main/webapp/WEB-INF/jsp/common/css-js.dev.jsp src/main/webapp/WEB-INF/jsp/common/css-js.jsp
OK,剩下的需要把war包上传到服务器,然后重启服务器即可,上传war的的方式有手动跟自动的,自动的通常使用ssh,或者sftp上传,然后通过ssh远程启动服务器,也可以在服务器写一个脚本,然后去调用,或者是部署到docker里面,然后重启docker容器,大致雷同,具体的就不说了,跟这篇文章不搭调.
分享到:
相关推荐
备案大师 技术栈 请尝试以root /管理员身份...节点r.js -o build.js //编译src文件&&压缩js,css 节点test.js //压缩html 解决谷歌跨域 找到谷歌浏览器目录最后添加:--args --disable-web-security --user-data-dir
RequireJS 是一个流行的JavaScript模块加载器和打包工具,遵循AMD(异步模块定义)规范。在大型项目中,它能帮助解决脚本依赖问题,按需加载模块,提高页面加载速度。通过RequireJS,开发者可以将Vue.js及其依赖按需...
ES6的模块系统支持静态加载和静态解析,这与CommonJS(Node.js中使用)和AMD(RequireJS中使用)的动态加载有所不同。 3. **Node.js**:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在...
在本项目"vue+requireJs+vueRouter.zip"中,我们将探讨如何在不依赖Node.js的情况下,利用Vue.js、Vue Router和Element UI来构建Web应用。 Vue.js 是一个轻量级的MVVM(Model-View-ViewModel)框架,其核心库专注于...
要使Vue与RequireJS兼容,我们需要使用`r.js`工具进行打包,或者使用社区提供的适配器插件。例如,`vue-amd`或`vue-requirejs`可以将Vue转换为AMD格式,这样就可以在RequireJS环境中正常加载: ```javascript ...
【模块化JavaScript与r.js打包】 在现代Web开发中,模块化JavaScript代码已经成为最佳实践,这有助于提高代码...通过正确配置和使用r.js,开发者可以轻松管理和打包模块化的JavaScript代码,为项目带来显著的性能提升。
RequireJS 是一个流行的JavaScript模块加载器和依赖管理库,它使得在浏览器环境中组织和加载复杂的JavaScript代码变得简单。 RequireJS 的源码分析可以帮助我们深入理解其工作原理,从而更好地运用到实际项目中。 ...
项目可能包含了关于配置和使用r.js的指南。 7. **响应式设计**:由于Bootstrap是响应式的,项目中可能会涉及如何利用Bootstrap栅格系统和其他响应式组件,创建适应不同设备屏幕尺寸的页面布局。 8. **实际应用场景...
AMD(Asynchronous Module Definition)是一种JavaScript模块化开发的规范,它允许我们异步加载和组织代码,使得大型项目能够更好地管理和维护。...对于大型的JavaScript项目,使用r.js进行打包是必不可少的步骤之一。
标题中的"starter-express-gulp-requirejs"是一个项目模板,它展示了如何使用一系列流行的JavaScript技术来构建Web应用。这个项目结合了Node.js、Bower、ExpressJS、Gulp和RequireJS,为开发者提供了一个高效的开发...
JavaScript的模块化则通常涉及到ES6的模块系统(import/export)、CommonJS(Node.js中广泛使用)或者AMD(异步模块定义,如RequireJS)。通过模块化,我们可以将大型的JavaScript应用分解为小型、独立的单元,每个...
通过r.js,你可以将多个JavaScript文件合并成一个文件,同时处理CSS、图片等资源,从而进一步提升页面性能。 在实际项目中,RequireJS结合模块化设计模式,如CommonJS、AMD或CMD,可以帮助开发者构建大型的前端应用...
3. **requireJS优化**:requireJS自身也提供了一个优化工具`r.js`,可以将模块打包成单个文件,减少HTTP请求。我们可以通过`gulp-rjs`或`gulp-wrap-amd`插件在gulp中调用`r.js`进行优化,并结合文件指纹功能,确保...
Optimizer` 提到了几个关键概念,包括模块化、代码优化、RequireJS Optimizer、UglifyJS 和 Closure Compiler,以及如何使用 Node.js 和 r.js 进行项目打包。 **模块化**:模块化编程是将复杂的代码分解为可重用、...
这段代码将 `src/main.js` 作为入口文件,使用 `browserify` 进行 CommonJS 模块化打包,并将结果输出到 `dist/bundle.js`。 现在让我们转向 `requireJS`。`requireJS` 是一个 JavaScript 模块化加载器,它遵循 AMD...
`r.js`(RequireJS Optimizer)是`require.js`的一个配套工具,主要用于优化和打包项目中的JavaScript和CSS文件。它可以合并多个文件为一个,删除未使用的代码,以及对JavaScript进行压缩,从而减少HTTP请求数量和...
RequireJS是JavaScript中的一种模块化加载工具,它使得在浏览器端组织和管理代码变得更加有序,尤其是在大型项目中。本篇文章将深入探讨RequireJS的进阶用法,帮助开发者更好地理解和运用这一强大的库。 RequireJS...
我在做混淆的时候,先要检测一下css、js文件语法的正确性,然后在合并、压缩、混淆;在混淆的过程,js文件出现了问题,Directive,Config,Factory混淆会出问题,运行不出来,我现在也没有解决;如果是原生的js代码...
在IT行业中,JavaScript是一种广泛使用的前端编程语言,尤其在构建交互式用户界面方面表现突出。React是Facebook开发的一个用于构建用户界面的JavaScript库,尤其擅长处理单页应用程序(SPA)的视图层。Require.js是...
本文将深入探讨如何使用r.js来构建配置,以处理多个模块。 首先,理解r.js的基本工作原理至关重要。r.js是一个基于CommonJS规范的模块打包工具,它可以将多个JavaScript模块合并成一个或多个文件,减少网络请求,...