Bootstrap4 gulp 配置詳解
最近想寫個(gè)項(xiàng)目,由于之前一直寫后端,很少接觸前端,所以這次來好好學(xué)一下前端??戳讼耏ii框架,它自帶了Bootstrap框架,最開始想的是怎么快速寫個(gè)頁(yè)面,哪知道這個(gè)就像剝洋蔥一樣,就剝到了學(xué)習(xí)構(gòu)建工具的階段。
說個(gè)很沮喪的消息,等我把gulp這套工具調(diào)通了后,發(fā)現(xiàn)Github上居然有很多這樣的模板了!廢了我3天時(shí)間來搞這個(gè)東西。給個(gè)關(guān)鍵詞:bootstrap 4 gulp boilerplate。額,以及還有一個(gè)網(wǎng)站,這是我讀完bootstrap的文檔后發(fā)現(xiàn)的:https://vanillajstoolkit.com/plugins/
在項(xiàng)目目錄下的babelln/gulpfile.babel.js:
// 如果要編譯babel可以啟用
// const babel = require('gulp-babel');
// const concat = require('gulp-concat');
// const uglify = require('gulp-uglify');
const del = require("del");
const gulp = require("gulp");
const browserSync = require("browser-sync");
const sassCompile = require("gulp-sass");
const server = browserSync.create();
const paths = {
scripts: {
src: "src/scripts/*.js",
dest: "dist/scripts"
},
css: {
src: "src/scss/*.scss",
dest: "dist/css"
}
};
// 定義清理方法,會(huì)刪除dist目錄
const clean = () => del(["dist"]);
// 定義需要拷貝到dist目錄的文件,一般APP最終使用的JS和CSS文件在這個(gè)目錄中
const scriptFiles = [
paths.scripts.src,
"node_modules/bootstrap/dist/js/bootstrap.min.js",
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/umd/popper.min.js"
];
// 編譯babel文件的時(shí)候使用
// function scripts() {
// return gulp.src(paths.scripts.src, { sourcemaps: true })
// .pipe(babel())
// .pipe(uglify())
// .pipe(concat('index.min.js'))
// .pipe(gulp.dest(paths.scripts.dest));
// }
// 將源代碼文件復(fù)制到目的地,中間可以加入其他處理程序
function scripts() {
return gulp.src(scriptFiles).pipe(gulp.dest(paths.scripts.dest));
}
// 重啟web服務(wù)
function reload(done) {
server.reload();
done();
}
// 編譯sass文件,在dist/css目錄產(chǎn)生結(jié)果文件
function sass() {
return gulp
.src(["node_modules/bootstrap/scss/bootstrap.scss", paths.css.src])
.pipe(sassCompile())
.pipe(gulp.dest(paths.css.dest));
}
// 服務(wù)初始化,以當(dāng)前目錄babelln/作為網(wǎng)站根目錄
function serve(done) {
server.init({
server: {
baseDir: "./"
}
});
done();
}
// 定義需要監(jiān)控的文件
const watches = [paths.scripts.src, "*.html", paths.css.src];
// 定義watch函數(shù),它監(jiān)控watches定義的文件,然后順序執(zhí)行這些方法
const watch = () => gulp.watch(watches, gulp.series(scripts, sass, reload));
// 再包裝一層,整個(gè)流程就是清理,編譯腳本,編譯sass,初始化web服務(wù),啟動(dòng)監(jiān)控
const dev = gulp.series(clean, scripts, sass, serve, watch);
// 暴露默認(rèn)方法給外部程序
exports.default = dev;
這個(gè)就是根據(jù)gulp官方的模板來捏的,最終還算是可以工作。
最后放個(gè)效果圖^^
編譯界面:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js判斷IE6/IE7/FF的代碼[XMLHttpRequest]
js下通過XMLHttpRequest判斷IE6/IE7/FF的代碼,需要的朋友可以參考下。2011-02-02
微信小程序?qū)崿F(xiàn)獲取手機(jī)號(hào)60s倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)獲取手機(jī)號(hào)60s倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
微信小程序?qū)W習(xí)筆記之文件上傳、下載操作圖文詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之文件上傳、下載操作,結(jié)合實(shí)例形式分析了微信小程序圖片文件傳輸?shù)脑?、步驟及后臺(tái)php操作相關(guān)實(shí)現(xiàn)技巧,并結(jié)合圖文形式予以詳細(xì)說明,需要的朋友可以參考下2019-03-03
Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù)
這篇文章主要為大家詳細(xì)介紹了Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
javascript實(shí)現(xiàn)固定側(cè)邊欄
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)固定側(cè)邊欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02

