-
Notifications
You must be signed in to change notification settings - Fork 1
/
gulpfile.js
114 lines (98 loc) · 3.18 KB
/
gulpfile.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
102
103
104
105
106
107
108
109
110
111
112
113
114
/*--------------------------------------------------------------------------
load modules
--------------------------------------------------------------------------*/
const $ = {
browserSync: require("browser-sync"),
gulp: require("gulp"),
plugins: require("gulp-load-plugins")(),
webpack: require("webpack"),
webpackStream: require("webpack-stream"),
webpackConfig: require("./webpack.config")
};
/*--------------------------------------------------------------------------
config
--------------------------------------------------------------------------*/
// フォルダパス設定
const PATH = {
src: "src/", // 開発コード
htdocs: "htdocs/" // 公開コード
};
// 公開モードフラグ
const IS_PRODUCTION = !!(process.argv[2] && process.argv[2].indexOf("-pro") != -1);
// libs.jsのパッケージ化
const IS_LIB = !!(process.argv[2] && process.argv[2].indexOf("-lib") != -1);
/*--------------------------------------------------------------------------
default
--------------------------------------------------------------------------*/
$.gulp.task("default", [/*"js", "sass",*/ "browserSync", "watch"]);
/*--------------------------------------------------------------------------
watch
--------------------------------------------------------------------------*/
$.gulp.task("watch", () => {
// $.gulp.watch([PATH.src + "css/**/*.scss"], ["sass"]);
$.gulp.watch([PATH.src + "js/**/*.js"], ["js"]);
$.gulp
.watch([PATH.htdocs + "**/*.html", PATH.htdocs + "assets/css/**/*.css"])
.on("change", () => {
$.browserSync.reload();
});
});
/*--------------------------------------------------------------------------
browserSync
--------------------------------------------------------------------------*/
$.gulp.task("browserSync", () => {
$.browserSync.init({
server: {
baseDir: PATH.htdocs
}
});
});
/*--------------------------------------------------------------------------
css
--------------------------------------------------------------------------*/
let cssSupported = [
"last 2 versions",
"android 4.4"
];
$.gulp.task("sass", () => {
$.plugins
.rubySass(PATH.src + "css/**/*.scss", {
style: IS_PRODUCTION ? "compressed" : "expanded"
})
.pipe($.plugins.plumber())
// .pipe($.plugins.pleeease({
// browsers: cssSupported,
// minifier: false,
// sourcemaps: false,
// mqpacker: false
// }))
.pipe($.plugins.cssnano({
autoprefixer: {
browsers: cssSupported,
add: true
}
}))
.pipe($.gulp.dest(PATH.htdocs + "assets/css/"));
});
/*--------------------------------------------------------------------------
js
--------------------------------------------------------------------------*/
$.gulp.task("js", () => {
// scripts
$.gulp
.src([
"!" + PATH.src + "js/libs/",
PATH.src + "js/**/*.js"
])
.pipe($.plugins.plumber())
.pipe($.webpackStream($.webpackConfig, $.webpack))
.pipe($.gulp.dest(PATH.htdocs + "assets/js/"));
// libs
if (IS_LIB) {
$.gulp
.src([PATH.src + "js/libs/**/*.js"])
.pipe($.plugins.plumber())
.pipe($.plugins.concat("libs.js"))
.pipe($.gulp.dest(PATH.htdocs + "assets/js/"));
}
});