Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
saasio
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
reyun
saasio
Commits
94db87f0
Commit
94db87f0
authored
7 years ago
by
manxiaoqiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gruntfile
parent
82eccd62
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
393 additions
and
0 deletions
+393
-0
Gruntfile.js
Gruntfile.js
+393
-0
No files found.
Gruntfile.js
0 → 100644
View file @
94db87f0
"use strict"
;
var
LIVERELOAD_PORT
,
lrSnippet
,
mountFolder
;
/*解决跨域问题*/
var
proxySnippet
=
require
(
'grunt-connect-proxy/lib/utils'
).
proxyRequest
;
LIVERELOAD_PORT
=
35728
;
/*页面自动刷新,即代码有修改页面就自动刷新*/
lrSnippet
=
require
(
"connect-livereload"
)({
port
:
LIVERELOAD_PORT
});
mountFolder
=
function
(
connect
,
dir
)
{
return
connect
[
"static"
](
require
(
"path"
).
resolve
(
dir
));
};
module
.
exports
=
function
(
grunt
)
{
var
yeomanConfig
;
/*自动读取并加载项目 packge.json 文件中 devDependencies 配置下以 grunt-* 开头的依赖库*/
require
(
"load-grunt-tasks"
)(
grunt
);
/*构建完成后,会给出每个任务的耗时及占总耗时的百分比*/
require
(
"time-grunt"
)(
grunt
);
yeomanConfig
=
{
app
:
"src/main/websrc"
,
dist
:
"dist"
,
docs
:
"documentation"
};
grunt
.
initConfig
({
yeoman
:
yeomanConfig
,
watch
:
{
compass
:
{
files
:
[
"<%= yeoman.app %>/styles/**/*.{scss,sass}"
],
tasks
:
[
"compass:server"
]
},
livereload
:
{
options
:
{
livereload
:
LIVERELOAD_PORT
//或者true
},
files
:
[
"<%= yeoman.app %>/index.html"
,
"<%= yeoman.app %>/template/**/*.html"
,
"<%= yeoman.app %>/js/**/*.js"
,
"<%= yeoman.app %>/styles/**/*.scss"
,
".tmp/styles/**/*.css"
,
"<%= yeoman.app %>/images/**/*.{png,jpg,jpeg,gif,webp,svg}"
]
}
},
connect
:
{
proxies
:
[{
context
:
[
'/api'
],
host
:
'localhost'
,
//host: '192.168.2.9',
port
:
8091
,
https
:
false
,
xforward
:
true
,
hideHeaders
:
[
'x-removed-header'
]
}],
options
:
{
port
:
9008
,
hostname
:
"*"
},
livereload
:
{
options
:
{
middleware
:
function
(
connect
)
{
return
[
lrSnippet
,
mountFolder
(
connect
,
".tmp"
),
mountFolder
(
connect
,
yeomanConfig
.
app
),
proxySnippet
];
}
}
},
test
:
{
options
:
{
middleware
:
function
(
connect
)
{
return
[
mountFolder
(
connect
,
".tmp"
),
mountFolder
(
connect
,
"test"
)];
}
}
},
dist
:
{
options
:
{
middleware
:
function
(
connect
)
{
//return [mountFolder(connect, yeomanConfig.dist)];
return
[
lrSnippet
,
mountFolder
(
connect
,
yeomanConfig
.
dist
),
proxySnippet
];
}
}
}
},
open
:
{
server
:
{
url
:
"http://localhost:<%= connect.options.port %>"
}
},
clean
:
{
dist
:
{
files
:
[
{
dot
:
true
,
src
:
[
".tmp"
,
"<%= yeoman.dist %>/*"
,
"!<%= yeoman.dist %>/.git*"
]
}
]
},
all
:
[
".tmp"
,
".sass-cache"
,
"readme.md"
,
"node_modules"
,
".git"
],
server
:
".tmp"
},
jshint
:
{
//代码质量检查
options
:
{
jshintrc
:
".jshintrc"
},
all
:
[
"Gruntfile.js"
,
"<%= yeoman.app %>/app/**/*.js"
]
},
injector
:
{
// JS/CSS 自动注入工具, 可以自动将 JS/CSS 的引用注入到 HTML 文件中
options
:
{
relative
:
true
},
local_dependencies
:
{
files
:
{
"<%= yeoman.app %>/index.html"
:
[
"<%= yeoman.app %>/app/**/*.module.js"
,
"<%= yeoman.app %>/app/**/*.js"
,
"!"
+
"<%= yeoman.app %>/**/*.spec.js"
,
"<%= yeoman.app %>/**/*.css"
]
}
}
},
compass
:
{
options
:
{
sassDir
:
"<%= yeoman.app %>/styles"
,
cssDir
:
".tmp/styles"
,
imagesDir
:
"<%= yeoman.app %>/images/"
,
javascriptsDir
:
"<%= yeoman.app %>/js"
,
httpFontsPath
:
"fonts"
,
relativeAssets
:
true
},
dist
:
{
options
:
{
outputStyle
:
'compressed'
,
debugInfo
:
false
,
noLineComments
:
true
}
},
server
:
{
options
:
{
debugInfo
:
true
}
},
forvalidation
:
{
options
:
{
debugInfo
:
false
,
noLineComments
:
false
}
}
},
useminPrepare
:
{
html
:
[
"<%= yeoman.app %>/index.html"
,
"<%= yeoman.app %>/login.html"
,
"<%= yeoman.app %>/activation.html"
,
"<%= yeoman.app %>/failure.html"
,
"<%= yeoman.app %>/forget.html"
,
"<%= yeoman.app %>/register.html"
,
"<%= yeoman.app %>/success.html"
,
"<%= yeoman.app %>/resetpwd.html"
,
"<%= yeoman.app %>/olduser.html"
,
"<%= yeoman.app %>/demo.html"
,
"<%= yeoman.app %>/home.html"
,
"<%= yeoman.app %>/main.html"
],
options
:
{
dest
:
"<%= yeoman.dist %>"
,
flow
:
{
steps
:
{
js
:
[
"concat"
],
css
:
[
"concat"
]
//concat,cssmin
},
post
:
[]
}
}
},
usemin
:
{
html
:
[
"<%= yeoman.dist %>/**/*.html"
],
options
:
{
dirs
:
[
"<%= yeoman.dist %>"
],
blockReplacements
:
{
css
:
function
(
block
)
{
var
final_name
=
block
.
dest
;
final_name
+=
"?r="
+
Math
.
random
();
var
media
=
block
.
media
?
' media="'
+
block
.
media
+
'"'
:
''
;
return
'<link rel="stylesheet" href="'
+
final_name
+
'"'
+
media
+
'>'
;
//此处为css标签的定制
},
js
:
function
(
block
)
{
var
final_name
=
block
.
dest
;
final_name
+=
"?r="
+
Math
.
random
();
var
defer
=
block
.
defer
?
'defer '
:
''
;
var
async
=
block
.
async
?
'async '
:
''
;
return
'<script '
+
defer
+
async
+
'src="'
+
final_name
+
'"><
\
/script>'
;
//次处为js标签的定制
}
}
}
},
htmlmin
:
{
dist
:
{
options
:
{},
files
:
[
{
expand
:
true
,
cwd
:
"<%= yeoman.app %>"
,
src
:
[
"*.html"
,
"template/**/*.html"
],
dest
:
"<%= yeoman.dist %>"
}
]
}
},
copy
:
{
dist
:
{
files
:
[
{
expand
:
true
,
dot
:
true
,
cwd
:
"<%= yeoman.app %>"
,
dest
:
"<%= yeoman.dist %>"
,
src
:
[
"data/**/*"
,
"font/**/*"
,
"images/**/*"
,
"**/*.html"
,
"template/**/*.png"
,
"template/**/*.jpg"
,
"*.ico"
]
},
{
expand
:
true
,
cwd
:
".tmp/images"
,
dest
:
"<%= yeoman.dist %>/images"
,
src
:
[
"generated/*"
]
},
{
expand
:
true
,
cwd
:
""
,
dest
:
"<%=yeoman.dist%>"
,
src
:
[
"Gruntfile.js"
,
'test/**/*'
]
}
]
},
styles
:
{
// expand: true,
// cwd: "<%= yeoman.app %>/styles",
// dest: ".tmp/styles/",
// src: "**/*.css"
}
},
concurrent
:
{
server
:
[
"compass:server"
,
"copy:styles"
],
dist
:
[
"compass:dist"
,
"copy:styles"
,
"htmlmin"
]
},
cssmin
:
{
options
:
{
keepSpecialComments
:
'0'
},
build
:
{
files
:{
"<%= yeoman.dist %>/styles/index.css"
:[
".tmp/styles/*.css"
,
"<%= yeoman.app %>/styles/*.css"
,
"!.tmp/styles/login.css"
,
"!.tmp/styles/home.css"
],
"<%= yeoman.dist %>/styles/login.css"
:[
".tmp/styles/login.css"
],
"<%= yeoman.dist %>/styles/home.css"
:[
".tmp/styles/home.css"
]
}
}
},
concat
:
{
options
:
{
separator
:
grunt
.
util
.
linefeed
+
';'
+
grunt
.
util
.
linefeed
},
// cssbuild: {
// src: ".tmp/styles/*.css",
// dest: "<%= yeoman.dist %>/styles/app.css"
// },
dist
:
{}
},
uglify
:
{
options
:
{
mangle
:
true
,
//混淆变量名
compress
:
{
drop_console
:
true
}
},
dist
:
{
// if do this uglify for app, the app can not start up
files
:
{
"<%= yeoman.dist %>/scripts/app.js"
:
[
"<%= yeoman.dist %>/scripts/app.js"
],
"<%= yeoman.dist %>/scripts/ui.js"
:
[
"<%= yeoman.dist %>/scripts/ui.js"
],
"<%= yeoman.dist %>/scripts/lgui.js"
:
[
"<%= yeoman.dist %>/scripts/lgui.js"
],
"<%= yeoman.dist %>/scripts/regui.js"
:
[
"<%= yeoman.dist %>/scripts/regui.js"
],
"<%= yeoman.dist %>/scripts/change.js"
:
[
"<%= yeoman.dist %>/scripts/change.js"
],
"<%= yeoman.dist %>/scripts/failure.js"
:
[
"<%= yeoman.dist %>/scripts/failure.js"
],
"<%= yeoman.dist %>/scripts/forget.js"
:
[
"<%= yeoman.dist %>/scripts/forget.js"
],
"<%= yeoman.dist %>/scripts/register.js"
:
[
"<%= yeoman.dist %>/scripts/register.js"
],
"<%= yeoman.dist %>/scripts/success.js"
:
[
"<%= yeoman.dist %>/scripts/success.js"
],
"<%= yeoman.dist %>/scripts/resetpwd.js"
:
[
"<%= yeoman.dist %>/scripts/resetpwd.js"
],
"<%= yeoman.dist %>/scripts/olduser.js"
:
[
"<%= yeoman.dist %>/scripts/olduser.js"
]
}
}
},
mock
:
{
//currently just list all mock api in this files, we need to separate them based the module.
your_target
:
{
options
:
{
port
:
9001
,
delay
:
200
,
cookie
:
{},
placeholders
:
{
getNumArr
:
function
(
len
)
{
//返回len个随机整数
var
arr
=
[];
for
(
var
i
=
0
;
i
<
len
;
i
++
){
arr
.
push
(
this
.
d1000
());
}
return
arr
;
},
getFloatArr
:
function
(
len
)
{
//返回len个随机浮点数
var
arr
=
[];
for
(
var
i
=
0
;
i
<
len
;
i
++
){
arr
.
push
(
this
.
float
(
0
,
100
,
0
,
2
));
}
return
arr
;
},
getLastDates
:
function
(
len
,
hasToday
)
{
//返回最近len天数据,hasToday为true从今天开始往前推
var
arr
=
[];
var
dd
=
new
Date
(),
d
=
dd
.
getDate
();
var
m
=
d
,
start
=
1
,
end
=
len
;
if
(
hasToday
&&
hasToday
==
true
){
start
=
0
;
end
-=
1
;
}
for
(
var
i
=
start
;
i
<=
end
;
i
++
){
var
day
=
m
-
i
;
if
(
day
==
0
){
dd
.
setDate
(
m
-
i
);
m
+=
dd
.
getDate
();
}
else
{
dd
.
setDate
(
m
-
i
);
}
arr
.
unshift
(
this
.
date
(
dd
,
'YYYY-MM-DD'
));
}
return
arr
;
},
getLastDay
:
function
(
len
)
{
//返回最近第len天,0是当天
var
dd
=
new
Date
(),
d
=
dd
.
getDate
();
dd
.
setDate
(
d
-
len
);
return
this
.
date
(
dd
,
'YYYY-MM-DD'
)
},
getLastMonth
:
function
(
len
)
{
//返回最近第len月的第一天,0是当月,eg:2017-03-01
var
dd
=
new
Date
(),
m
=
dd
.
getMonth
();
dd
.
setMonth
(
m
-
len
);
dd
.
setDate
(
1
);
return
this
.
date
(
dd
,
'YYYY-MM-DD'
)
},
getLastWeek
:
function
(
len
)
{
//返回最近第几周的周一,0是当周的周一
var
dd
=
new
Date
(),
d
=
dd
.
getDate
(),
w
=
dd
.
getDay
();
w
=
w
==
0
?
7
:
w
;
dd
.
setDate
(
d
-
w
+
1
-
len
*
7
);
return
this
.
date
(
dd
,
'YYYY-MM-DD'
);
},
getHourData
:
function
(
num
,
hour
)
{
//根据小时对比返回当前应显示数
var
nh
=
new
Date
().
getHours
();
if
(
nh
>=
hour
){
return
num
;
}
else
{
return
0
;
}
}
},
route
:
{
}
},
cwd
:
'./test/mocks'
,
src
:
[
'*.json'
]
}
}
});
// grunt.registerTask("docs", function() {
// return grunt.task.run(["jade:docs", "connect:docs", "open", "watch"]);
// });
grunt
.
registerTask
(
"server"
,
function
(
target
)
{
if
(
target
===
"dist"
)
{
return
grunt
.
task
.
run
([
"serve:dist"
]);
}
return
grunt
.
task
.
run
([
"serve"
]);
});
grunt
.
registerTask
(
"serve"
,
function
(
target
)
{
if
(
target
===
"dist"
)
{
//return grunt.task.run(["build", "open", "connect:dist:keepalive"]);
return
grunt
.
task
.
run
([
"build"
,
"configureProxies"
,
"connect:dist:keepalive"
,
"open"
]);
}
return
grunt
.
task
.
run
([
"clean:server"
,
"concurrent:server"
,
"configureProxies"
,
"connect:livereload"
,
"open"
,
"watch"
]);
});
grunt
.
registerTask
(
"build"
,
[
"clean:dist"
,
"useminPrepare"
,
"concurrent:dist"
,
"copy:dist"
,
"concat"
,
"cssmin"
,
"uglify"
,
"usemin"
]);
return
grunt
.
registerTask
(
"default"
,
[
"build"
]);
};
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment