Skip to content

Commit 3b1f0fb

Browse files
committed
first commit
0 parents  commit 3b1f0fb

14 files changed

+611
-0
lines changed

.bowerrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"directory": "app/components"
3+
}

.editorconfig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# EditorConfig helps developers define and maintain consistent
2+
# coding styles between different editors and IDEs
3+
# editorconfig.org
4+
5+
root = true
6+
7+
8+
[*]
9+
10+
# Change these settings to your own preference
11+
indent_style = space
12+
indent_size = 2
13+
14+
# We recommend you to keep these unchanged
15+
end_of_line = lf
16+
charset = utf-8
17+
trim_trailing_whitespace = true
18+
insert_final_newline = true
19+
20+
[*.md]
21+
trim_trailing_whitespace = false

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
dist
3+
.tmp
4+
.sass-cache
5+
app/components

.jshintrc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"node": true,
3+
"browser": true,
4+
"es5": true,
5+
"esnext": true,
6+
"bitwise": true,
7+
"camelcase": true,
8+
"curly": true,
9+
"eqeqeq": true,
10+
"immed": true,
11+
"indent": 2,
12+
"latedef": true,
13+
"newcap": true,
14+
"noarg": true,
15+
"quotmark": "single",
16+
"regexp": true,
17+
"undef": true,
18+
"unused": true,
19+
"strict": true,
20+
"trailing": true,
21+
"smarttabs": true,
22+
"globals": {
23+
"angular": false,
24+
"$": false
25+
}
26+
}

Gruntfile.js

Lines changed: 276 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
'use strict';
2+
var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet;
3+
var mountFolder = function (connect, dir) {
4+
return connect.static(require('path').resolve(dir));
5+
};
6+
7+
module.exports = function (grunt) {
8+
// load all grunt tasks
9+
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
10+
11+
// configurable paths
12+
var yeomanConfig = {
13+
app: 'app',
14+
dist: 'dist'
15+
};
16+
17+
try {
18+
yeomanConfig.app = require('./component.json').appPath || yeomanConfig.app;
19+
} catch (e) {}
20+
21+
grunt.initConfig({
22+
yeoman: yeomanConfig,
23+
watch: {
24+
coffee: {
25+
files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'],
26+
tasks: ['coffee:dist']
27+
},
28+
coffeeTest: {
29+
files: ['test/spec/{,*/}*.coffee'],
30+
tasks: ['coffee:test']
31+
},
32+
compass: {
33+
files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
34+
tasks: ['compass']
35+
},
36+
livereload: {
37+
files: [
38+
'<%= yeoman.app %>/{,*/}*.html',
39+
'{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
40+
'{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js',
41+
'<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp}'
42+
],
43+
tasks: ['livereload']
44+
}
45+
},
46+
connect: {
47+
livereload: {
48+
options: {
49+
port: 9000,
50+
// Change this to '0.0.0.0' to access the server from outside.
51+
hostname: 'localhost',
52+
middleware: function (connect) {
53+
return [
54+
lrSnippet,
55+
mountFolder(connect, '.tmp'),
56+
mountFolder(connect, yeomanConfig.app)
57+
];
58+
}
59+
}
60+
},
61+
test: {
62+
options: {
63+
port: 9000,
64+
middleware: function (connect) {
65+
return [
66+
mountFolder(connect, '.tmp'),
67+
mountFolder(connect, 'test')
68+
];
69+
}
70+
}
71+
}
72+
},
73+
open: {
74+
server: {
75+
url: 'http://localhost:<%= connect.livereload.options.port %>'
76+
}
77+
},
78+
clean: {
79+
dist: ['.tmp', '<%= yeoman.dist %>/*'],
80+
server: '.tmp'
81+
},
82+
jshint: {
83+
options: {
84+
jshintrc: '.jshintrc'
85+
},
86+
all: [
87+
'Gruntfile.js',
88+
'<%= yeoman.app %>/scripts/{,*/}*.js'
89+
]
90+
},
91+
karma: {
92+
unit: {
93+
configFile: 'karma.conf.js',
94+
singleRun: true
95+
}
96+
},
97+
coffee: {
98+
dist: {
99+
files: {
100+
'.tmp/scripts/coffee.js': '<%= yeoman.app %>/scripts/*.coffee'
101+
}
102+
},
103+
test: {
104+
files: [{
105+
expand: true,
106+
cwd: '.tmp/spec',
107+
src: '*.coffee',
108+
dest: 'test/spec'
109+
}]
110+
}
111+
},
112+
compass: {
113+
options: {
114+
sassDir: '<%= yeoman.app %>/styles',
115+
cssDir: '.tmp/styles',
116+
imagesDir: '<%= yeoman.app %>/images',
117+
javascriptsDir: '<%= yeoman.app %>/scripts',
118+
fontsDir: '<%= yeoman.app %>/styles/fonts',
119+
importPath: '<%= yeoman.app %>/components',
120+
relativeAssets: true
121+
},
122+
dist: {},
123+
server: {
124+
options: {
125+
debugInfo: true
126+
}
127+
}
128+
},
129+
concat: {
130+
dist: {
131+
files: {
132+
'<%= yeoman.dist %>/scripts/scripts.js': [
133+
'.tmp/scripts/{,*/}*.js',
134+
'<%= yeoman.app %>/scripts/{,*/}*.js'
135+
]
136+
}
137+
}
138+
},
139+
useminPrepare: {
140+
html: '<%= yeoman.app %>/index.html',
141+
options: {
142+
dest: '<%= yeoman.dist %>'
143+
}
144+
},
145+
usemin: {
146+
html: ['<%= yeoman.dist %>/{,*/}*.html'],
147+
css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
148+
options: {
149+
dirs: ['<%= yeoman.dist %>']
150+
}
151+
},
152+
imagemin: {
153+
dist: {
154+
files: [{
155+
expand: true,
156+
cwd: '<%= yeoman.app %>/images',
157+
src: '{,*/}*.{png,jpg,jpeg}',
158+
dest: '<%= yeoman.dist %>/images'
159+
}]
160+
}
161+
},
162+
cssmin: {
163+
dist: {
164+
files: {
165+
'<%= yeoman.dist %>/styles/main.css': [
166+
'.tmp/styles/{,*/}*.css',
167+
'<%= yeoman.app %>/styles/{,*/}*.css'
168+
]
169+
}
170+
}
171+
},
172+
htmlmin: {
173+
dist: {
174+
options: {
175+
/*removeCommentsFromCDATA: true,
176+
// https://github.com/yeoman/grunt-usemin/issues/44
177+
//collapseWhitespace: true,
178+
collapseBooleanAttributes: true,
179+
removeAttributeQuotes: true,
180+
removeRedundantAttributes: true,
181+
useShortDoctype: true,
182+
removeEmptyAttributes: true,
183+
removeOptionalTags: true*/
184+
},
185+
files: [{
186+
expand: true,
187+
cwd: '<%= yeoman.app %>',
188+
src: ['*.html', 'views/*.html'],
189+
dest: '<%= yeoman.dist %>'
190+
}]
191+
}
192+
},
193+
cdnify: {
194+
dist: {
195+
html: ['<%= yeoman.dist %>/*.html']
196+
}
197+
},
198+
ngmin: {
199+
dist: {
200+
files: [{
201+
expand: true,
202+
cwd: '<%= yeoman.dist %>/scripts',
203+
src: '*.js',
204+
dest: '<%= yeoman.dist %>/scripts'
205+
}]
206+
}
207+
},
208+
uglify: {
209+
dist: {
210+
files: {
211+
'<%= yeoman.dist %>/scripts/scripts.js': [
212+
'<%= yeoman.dist %>/scripts/scripts.js'
213+
],
214+
}
215+
}
216+
},
217+
copy: {
218+
dist: {
219+
files: [{
220+
expand: true,
221+
dot: true,
222+
cwd: '<%= yeoman.app %>',
223+
dest: '<%= yeoman.dist %>',
224+
src: [
225+
'*.{ico,txt}',
226+
'.htaccess',
227+
'components/**/*',
228+
'images/{,*/}*.{gif,webp}'
229+
]
230+
}]
231+
}
232+
}
233+
});
234+
235+
grunt.renameTask('regarde', 'watch');
236+
// remove when mincss task is renamed
237+
grunt.renameTask('mincss', 'cssmin');
238+
239+
grunt.registerTask('server', [
240+
'clean:server',
241+
'coffee:dist',
242+
'compass:server',
243+
'livereload-start',
244+
'connect:livereload',
245+
'open',
246+
'watch'
247+
]);
248+
249+
grunt.registerTask('test', [
250+
'clean:server',
251+
'coffee',
252+
'compass',
253+
'connect:test',
254+
'karma'
255+
]);
256+
257+
grunt.registerTask('build', [
258+
'clean:dist',
259+
'jshint',
260+
'test',
261+
'coffee',
262+
'compass:dist',
263+
'useminPrepare',
264+
'imagemin',
265+
'cssmin',
266+
'htmlmin',
267+
'concat',
268+
'copy',
269+
'cdnify',
270+
'usemin',
271+
'ngmin',
272+
'uglify'
273+
]);
274+
275+
grunt.registerTask('default', ['build']);
276+
};

README.md

Whitespace-only changes.

0 commit comments

Comments
 (0)