-
Notifications
You must be signed in to change notification settings - Fork 6
/
config.js
101 lines (85 loc) · 2.17 KB
/
config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
'use strict';
import fs from 'graceful-fs';
import {argv} from 'yargs';
const production = argv.production || argv.prod || false;
export default {
getConfig: function(pkg, src, dest) {
return {
version: pkg.version,
name: pkg.name,
title: pkg.title,
description: pkg.description,
author: pkg.author,
banner: `/**
* ${pkg.title} v${pkg.version}
* ${pkg.homepage}
*
* Copyright (c) ${pkg.author.name}
* Released under the ${pkg.license} license
*/
`,
// basic locations
paths: {
root: './',
srcDir: `${src}/`,
destDir: `${dest}/`,
},
styles: {
files: '**/*.scss',
src: `${src}/scss`,
dest: `${dest}/css`,
prodSourcemap: false,
sassIncludePaths: [],
autoprefixer: {
browsers: ['last 2 versions', 'ie >= 9', 'Android >= 2.3']
}
},
scripts: {
input: 'main.js',
version: 'info.js',
files: '**/*.js',
src: `${src}`,
dest: `${dest}`,
prodSourcemap: false,
test: './test',
gulp: './gulp'
},
archive: {
src: `${dest}/**/*`,
dest: './archives/',
zip: {}
},
browser: {
baseDir: './',
startPath: "examples/index.html",
browserPort: 3000,
UIPort: 3001,
testPort: 3002,
},
deploy: {
versionFiles: ['package.json', 'bower.json'],
increment: "patch", // major, minor, patch, premajor, preminor, prepatch, or prerelease.
},
notify: {
title: pkg.title
},
env: 'development',
production: production,
setEnv: function(env) {
if (typeof env !== 'string') return;
this.env = env;
this.production = env === 'production';
process.env.NODE_ENV = env;
},
test: {},
};
},
init: function() {
const pkg = JSON.parse(fs.readFileSync('./package.json', { encoding: 'utf-8' }));
let src = 'src';
let dest = 'dist';
Object.assign(this, this.getConfig(pkg, src, dest, production));
this.setEnv(production? 'production': 'development');
return this;
}
}.init();