`
mutongwu
  • 浏览: 438928 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

grunt构建基于seajs的网站实现

阅读更多
Gruntfile.js

module.exports = function(grunt) {
	
  grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        //源码
        src: "asserts",

        //输出
        dist: "dist",
        
        transport: {
        	options: {
        		paths:["<%=src%>/sea-modules"],
        		alias: {
        		    "jquery": "lib/jquery.js"
        		}
    	    },
            modules: {
                files : [
                    {
                    	 cwd: '<%=src%>/sea-modules',
                    	 expand: true,
                         src: '**/*.js',
                         dest: '<%=dist%>/sea-modules'
                    }
                ]
            },
            dwstatic: {
            	options:{
            	},
                files : [
                    {
                    	 cwd: '<%=src%>',
                    	 expand: true,
                         src: 'dwstatic/**/*.js',
                         dest: '<%=dist%>'
                    }
                ]
            }
        },
        copy:{
        	moduleRes:{
        		files:[
        		       {expand: true, cwd: '<%=src%>/sea-modules/css', src:['**'],dest: '<%=dist%>/sea-modules/css'},
        		       {expand: true, cwd: '<%=src%>/sea-modules/img', src:['**'],dest: '<%=dist%>/sea-modules/img'}
				]
        	},
        	staticRes:{
        		files:[
        		       {expand: true, cwd: '<%=src%>/dwstatic/css', src:['**'],dest: '<%=dist%>/dwstatic/css'},
        		       {expand: true, cwd: '<%=src%>/dwstatic/images', src:['**'],dest: '<%=dist%>/dwstatic/images'}
				]
        	}
        },
        concat: {
        	//合并一个公用的基础js,并且利用 preload插件,让其前置加载。
            aio: {
            	options: {
            		paths:["<%=dist%>/sea-modules"],
            		include: "all"
        	    },
                files: {
                	"<%=dist%>/sea-modules/aio.js": ["<%=dist%>/sea-modules/aio.js"]
                }
            }
        },
        uglify:{
        	allJs:{
        		files:[{
    		       expand: true,
                   cwd: '<%=dist%>',
                   src: ['**/*.js', '!**/*-debug.js'],
                   dest: '<%=dist%>'
        		}]
        	}
        },
        cssmin: {
        	allCss: {
    		    expand: true,
    		    cwd: '<%=dist%>',
    		    src: ['**/*.css'],
    		    dest: '<%=dist%>'
    		}
        }
  });
  
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-cssmin');
  grunt.loadNpmTasks('grunt-cmd-transport');
  grunt.loadNpmTasks('grunt-cmd-concat');

  grunt.registerTask('min', ['uglify','cssmin']);
  grunt.registerTask('default', ['transport', 'concat','copy','uglify','cssmin']);
  
};


页面调用:


<!doctype html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<title>Image preview example</title>
<link type="text/css" rel="stylesheet" href="asserts/sea-modules/css/common.css" />

<script id="seajsnode" src="http://shawn.yy.com:1234/www/seajsDemo/asserts/sea-debug.js"></script>
<script type="text/javascript" src="http://shawn.yy.com:1234/www/seajsDemo/asserts/seajs-css.js"></script>
<script type="text/javascript" src="http://shawn.yy.com:1234/www/seajsDemo/asserts/seajs-preload.js"></script>
<style>
pre{display:block;background:#000;color:green;padding:20px;font-weight:bold;}
</style>
</head>

<body>
<pre>
npm 安装的包:
npm install -g grunt-cli
npm install grunt --save-dev
npm install grunt-cmd-transport --save-dev
npm install grunt-cmd-concat --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-contrib-cssmin --save-dev

</pre>
<input id="pop" value="pop" type="button" class="greenbtn largebtn"/>
<script>
//静态服务器地址
var staticBase = "http://shawn.test.com:1234/www/seajsDemo/dist/";
if(location.search){
	staticBase = "/www/seajsDemo/asserts/"; //使用本地资源
}
seajs.config({
  preload:["aio"],
  base: staticBase + "sea-modules/",
  alias: {
    "jquery": "lib/jquery.js"
  },
  vars: {
    'locale': 'zh-CN' //国际化支持
  },
  paths:{
	  //dwstatic开头的模块,将被重新映射到具体的资源路径。
	  "dwstatic" : staticBase + "dwstatic"
  },
  map:[ [/^(.*\.(?:js|css))(.*)$/i, '$1?ver=20150615']]
});
</script>
<script>
	//【规范】:凡是dwstatic开头的资源,视为业务模块,要求放置在dwstatic目录下
	seajs.use("dwstatic/index");
	//seajs.use("dwstatic/index-debug")
</script>
</body>
</html>



工程目录:



代码:
  • 大小: 13.1 KB
分享到:
评论

相关推荐

    seajs-grunt:seajs+grunt的构建脚手架

    基于seajs的模块化方案,配合grunt构建配置 主要用到了grunt的grunt-cmd-transport、grunt-cmd-concat、grunt-contrib-uglify、grunt-contrib-copy 这几个模块,实现模块依赖分析,模块合并,代码压缩等功能 使用...

    node+seajs+grunt标准资源

    主要是做了一个基于node环境中,seajs的配置以及一些实例和利用grunt进行资源的打包压缩合并的构建

    前端开源库-grunt-react-seajs

    前端开源库-grunt-react-seajsgrunt react seajs,一个将react组件转换为seajs模块的grunt插件

    前端开源库-grunt-react-seajs.zip

    前端开源库-grunt-react-seajs.zip

    grunt项目构建样例

    grunt项目构建样例,实现js文件css文件等的压缩和合并

    grunt-seajs:grunt build seajs 的演示

    提供各类插件用于前端开发,例如JSLint代码检验,优化,concat合并文件插件,uglify压缩工具,与CMD规范(一种js模块化开发的规范提议)配合的grunt-cmd-concat,这里主要是用于配合seajs,将多个文件合并压缩 ##使用环境##...

    grunt-purifycss, 使用grunt构建工具删除未使用的CSS.zip

    grunt-purifycss, 使用grunt构建工具删除未使用的CSS purifycss使用 PurifyCSS 清除不必要的CSS正在启动这个插件需要 Grunt ~0.4.5If之前,请务必先查看一下如何创建 Gruntfile插件,以及安装和使用Grunt插件。...

    grunt-seajs-scripttag:seajs grunt插件,用于通过脚本标签导入简明文件

    grunt-seajs-scripttag 在模板中包含[removed]标记,以便通过grunt-antrol-concat导入拆分的文件入门这个插件需要~0.4.0 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何创建以及安装和使用Grunt插件...

    用自动化构建工具增强你的工作流程!基于流stream的自动化构建工具Gulp+Grunt项目构建

    自动化构建工具Grunt_实现watch监视任务实现自动打包编译.avi (2)\Gulp即学即用;目录中文件数:8个 ├─01.自动化构建工具Gulp_入门介绍.avi ├─02.自动化构建工具Gulp_构建js.avi ├─03.自动化构建工具Gulp_构建...

    web-grunt-seajs:web-grunt-seajs 前端

    web-grunt-seajs 开发댔관북깻 grunt --config src/lib/config/config.js --isBeautify 建立댔관북깻箕键 grunt --config src/lib/config/config.js 测试湳驾꿎杆북깻 grunt --config src/lib/config/config.js...

    grunt-drupal-tasks, 面向Drupal的Grunt构建和测试任务.zip

    grunt-drupal-tasks, 面向Drupal的Grunt构建和测试任务 Grunt Drupal任务用于自动化 Drupal 7和 Drupal 8构建和测试任务的Grunt插件。代码状态( 主分支): 特性这个项目构建在Grunt社区的工具之上,提供了许多 PHP &...

    grunt-ejs2seajs

    Advantage: 优点: Easy to debug 便于调试 Nodejs usable 可用于nodejs No XSS 避免XSS Debugging in chrome dev ...npm install grunt-ejs2seajs --save-dev Then add this line to your project's gruntfile: 添加

    grunt-quick-build:构建seajs模块。提取替换ID,压缩混淆

    构建seajs模块。提取替换ID,压缩替换。 这个插件需要~0.4.5 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何创建以及安装和使用Grunt插件。 熟悉该过程后,可以使用以下命令安装此插件: npm ...

    grunt前端构建工具

    本压缩包是执行命令npm install grunt --save-dev,安装的文件。

    grunt-component-build:使用 Grunt 构建组件

    使用 Grunt 构建组件。 入门 如果您以前没有使用过grunt ,请务必查看入门指南,因为它解释了如何创建Gruntfile以及安装和使用 grunt 插件。 熟悉该过程后,请使用以下命令安装此插件: npm install grunt-...

    grunt demo

    Grunt是基于Node.js的项目构建工具。它可以自动运行你所设定的任务。Grunt拥有数量庞大的插件,几乎任何你所要做的事情都可以用Grunt实现。

    generator-powermvc:用于 ASP.NET MVC 项目的 Grunt 前端构建堆栈

    Yeoman PowerMvc 生成器PowerMvc 是一个生成器,可将基于的前端构建堆栈添加到您的ASP.NET MVC项目中。 开箱即用,它提供对 、 、 、实时重新加载、CDN、缩小、捆绑、源映射和修订的支持。 它还与 MsBuild 和 ...

    前端开源库-grunt-requirejs

    前端开源库-grunt-requirejsgrunt require js,使用grunt构建基于require.js的应用程序

    Grunt一个实现批量处理的JavaScript任务自动构建工具

    Grunt是第一个实现批量处理的JavaScript任务自动构建工具之一,但是他的构建速度的瓶颈和复杂的JSON配置导致了Gulp的快速发展。现在最糟糕的问题已经被解决了,Grunt仍然是一个很好的工具可供选择。

Global site tag (gtag.js) - Google Analytics