const path = require('path')
const fs = require('fs');
module.exports = function (grunt) {
grunt.registerTask('setapi', 'setapi..', function (arg1, arg2) {
var RouteMapLibPath = './dest/limsStyle/RouteMapLib-1.1.js';
var data = fs.readFileSync('./dest/limsStyle/config.json');
var RouteMapLib = fs.readFileSync(RouteMapLibPath).toString();
data = JSON.parse(data);
if (typeof arg1 != 'undefined') {
switch (arg1) {
case 'dev': {
replaceConfig(data.devconfig)
}; break;
case 'test': {
replaceConfig(data.testconfig)
}; break;
case 'build': {
replaceConfig(data.buildconfig)
}; break;
}
}
else {
replaceConfig(data.location)
}
fs.writeFileSync(RouteMapLibPath, RouteMapLib); function replaceConfig(d) {
RouteMapLib = RouteMapLib.replace('{#ajaxUrl}', d.ajaxUrl);
RouteMapLib = RouteMapLib.replace('{#user_token}', d.user_token);
RouteMapLib = RouteMapLib.replace('{#ELNEdit}', d.ELNEdit);
// console.log(RouteMapLib);
}; }); grunt.initConfig({
clean: ['/dest'],
jshint: {
files: ['limsStyle/postil.js'],
options: {
globals: {
jQuery: true
}
}
},
watch: {
cwd: 'src',
files: ['src/**/*.js', 'src/**/*.json', 'src/**/*.html', 'src/limsStyle/*.css', 'src/**/*.less'],
tasks: ['copy:main', 'setapi', 'jshint', 'babel'],
options: {
reload: true,
livereload: 35729
}
}
,
uglify: {
main: {
src: '',
dest: ''
},
},
copy: {
processContentExclude: ['othen/**'],
main: {
expand: true,
cwd: 'src',
//src: ['**', '!*.sln', '!**lib/diff/**', '!**lib/layer-v3.1.1/**', '!**lib/layerdate/**', '!**.vs/**', '!**lib/bootstrap-3.3.7-dist/**', '!**lib/ueditor1_4_3-utf8-net/third-party/**', '!**lib/ueditor1_4_3-utf8-net/third-party/dialogs/**'], //**
src: ['limsStyle/**', 'othen/**', '_temp/**', 'images/**', 'layertemplate/**', 'ElnIndex.html'],
dest: 'dest/',
flatten: false,
filter: 'isFile'
},
all: {
expand: true,
cwd: 'src',
src: ['**'], //**
dest: 'dest/',
flatten: false,
filter: 'isFile'
}
}
, babel: {
options: {
sourceMap: true,
presets: ['babel-preset-es2015'] },
dist: {
files: [{
expand: true,
cwd: 'src/',
src: ['limsStyle/postil.js'],
dest: 'dest/'
}]
}
},
connect: {
options: {
port: 9000,
hostname: 'localhost',
livereload: 35729
},
server: {
options: {
open: true,
base: [
"dest"
]
}
}
},
}); grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-babel');
// grunt.registerTask('clean', ['clean:release', 'copy:all']); grunt.registerTask('default', ['copy:main', 'babel', 'setapi', 'connect', 'watch']);
grunt.registerTask('dev', ['copy:main', 'babel', 'setapi:dev'])
grunt.registerTask('test', ['copy:all', 'babel', 'setapi:test']);
grunt.registerTask('build', ['copy:all', 'babel', 'setapi:build']); };

grunt完整的配置demo的更多相关文章

  1. log4net保存到数据库系列四、完整代码配置log4net

    园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...

  2. echarts标准饼图(一)——基本配置demo

    echarts标准饼图解读共分为四部分, 一.基本配置demo 二.标题(title)配置 三.提示框(tooltip)配置 四.图例(legend)配置 五.系列列表(series )配置 下面是一 ...

  3. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  4. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  5. Maven - settings.xml简易配置Demo

    前言 这里贴一下settings.xml的一个简易配置demo,就是简单配置了:本地的仓库地址.阿里云镜像.指定使用jdk1.8进行编译. 这里使用的Maven是3.5.0版本的. 配置文件demo ...

  6. 利用webuploader插件上传图片文件,完整前端示例demo,服务端使用SpringMVC接收

    利用WebUploader插件上传图片文件完整前端示例demo,服务端使用SpringMVC接收 Webuploader简介   WebUploader是由Baidu WebFE(FEX)团队开发的一 ...

  7. django1.7 配置demo教程(环境搭建)

    近期又用到django做个简单项目,1年多没用过了有些手生,按理说没啥问题吧 以下是一个简单的环境搭建demo过程: 前提条件:准备了python2.7已经安装 1.搭建django环境下载 http ...

  8. grunt安装,配置记录

    进了新的公司,需要重构一个项目,从头开始.本人患懒癌已久,一直没有写博客的打算,也是因为资质还比较浅,写不出什么富有涵养的内容,后来想了想,就当自己的笔记吧.这次从新开始,未尝不是一个博客开始的好时机 ...

  9. grunt 检测js配置

    module.exports = function(grunt) { // 项目配置 grunt.initConfig({ pkg: grunt.file.readJSON('package.json ...

随机推荐

  1. 专题:OpenSSL

    一.常用操作 对称加密: openssl enc -e -aes256 -base64 -in goal.file -out result.file 加密,-base64 指使用 base64 編码 ...

  2. struts基础2

    Result配置详解 说明:在前面的许多案例中我们所用到的Action基本都继承自ActionSupport这个类,而在这个类中我们定义了五个字段:SUCCESS,NONE,ERROR,INPUT,L ...

  3. git 强制取消本地修改

    本地的项目中修改不做保存操作,可以用到Git pull的强制覆盖,具体代码如下: git fetch --allgit reset --hard origin/master git fetch 指令是 ...

  4. 使ie8正常支持placeholder

    在IE8下测试,发现一个问题placeholder不被支持,下面是解决IE支持placeholder的方法,本文引用的jquery是1.12.0测试通过,先引用jquery <script ty ...

  5. JS的面向对象与原型

    原型 const yoshi = { skulk: true }; const hattori = { sneak: true }; const kuma = { creep: true }; ⇽-- ...

  6. ARM 汇编 简单介绍

    1. 汇编文件说明 : 汇编文件以 [.s]结尾的文件格式 注释:多行注释 /* */   : 单行注释 @ 2.  符号说明: 1) 汇编指令,一条指令对应一个机器码,完成一定的功能 2) 伪指令, ...

  7. C#链接Mysql

    先在网上找到Mysql.Data.dll组件, 文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads ,下载平台 ...

  8. 从零开始搭建系统1.5——Redis安装及配置

    1.在/usr/目录下创建redis目录 [root@localhost usr]# mkdir redis 2.下载安装包 wget http://download.redis.io/release ...

  9. Spring:DataSource注入到dao

    Spring:DataSource注入到dao 使用DOS命令创建数据库(Mysql) CREATE DATABASE book DEFAULT CHARACTER SET utf8; CREATE ...

  10. 文件上传到ftp服务工具类

    直接引用此java工具类就好 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep ...