> ## :-: 配置文件( gulpfile.js )
```
// 引入gulp
var gulp = require("gulp"),
// image壓縮插件
imagemin = require("gulp-imagemin"),
// html壓縮插件 clean -- 壓縮
htmlclean = require("gulp-htmlclean"),
// js壓縮插件
uglify = require("gulp-uglify"),
// 去掉js中的調試語句
stripDebug = require("gulp-strip-debug"),
concat = require("gulp-concat"),
deporder = require("gulp-deporder"),
// 將less轉換成css的插件
less = require("gulp-less"),
postcss = require("gulp-postcss"),
autoprefixer = require("autoprefixer"),
cssnano = require("cssnano"),
// 開啟服務器
connect = require("gulp-connect"),
// 判斷當前的環境變量 生產/開發
// devMode = process.env.NODE_ENV !== "production",
devMode = false;
// export NODE_ENV=development ----- 設置環境變量
var folder = {
src: "src/",
dist: "dist/src/"
}
//流操作 task running
gulp.task("html", function() {
var page = gulp.src("index.html")
// 重新刷新 -- connect.reload()
.pipe(connect.reload());
// 判斷是否不為開發模式 (壓縮)
if (!devMode) {
page.pipe(htmlclean());
}
page.pipe(gulp.dest("dist/"))
})
gulp.task("images", function() {
gulp.src(folder.src + "images/*")
.pipe(imagemin())
.pipe(gulp.dest(folder.dist + "images/"));
});
gulp.task("js", function() {
var js = gulp.src(folder.src + "js/*")
.pipe(connect.reload());
if (!devMode) {
js.pipe(uglify())
.pipe(stripDebug())
}
js.pipe(gulp.dest(folder.dist + "js/"))
});
gulp.task("css", function() {
var css = gulp.src(folder.src + "css/*")
.pipe(connect.reload())
.pipe(less());
var options = [autoprefixer()];
if (!devMode) {
options.push(cssnano());
}
css.pipe(postcss(options))
.pipe(gulp.dest(folder.dist + "css/"));
});
// 監聽文件變化
gulp.task("watch", function() {
gulp.watch("index.html", ["html"]);
gulp.watch(folder.src + "images/*", ["images"]);
gulp.watch(folder.src + "js/*", ["js"]);
gulp.watch(folder.src + "css/*", ["css"]);
});
// gulp.task -- 創建任務
gulp.task("server", function() {
// 開啟服務器、
connect.server({
// 修改默認端口號
port: "9999",
livereload: true
});
})
gulp.task("default", ["html", "images", "js", "css", "watch", "server"]);
// gulp Api (主要的)
// --- gulp.src()
// --- gulp.dest()
// --- gulp.task()
// --- gulp.watch()
```
> ## :-: package.json
```
{
"name": "html5music",
"version": "1.0.0",
"description": "this is html5 music ",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"html5",
"music"
],
"author": "liuluwei",
"license": "ISC",
"devDependencies": {
"autoprefixer": "^8.1.0",
"cssnano": "^3.10.0",
"gulp": "^3.9.1",
"gulp-concat": "^2.6.1",
"gulp-connect": "^5.5.0",
"gulp-deporder": "^1.1.0",
"gulp-htmlclean": "^2.7.20",
"gulp-imagemin": "^4.1.0",
"gulp-less": "^4.0.0",
"gulp-postcss": "^7.0.1",
"gulp-strip-debug": "^3.0.0",
"gulp-uglify": "^3.0.0"
},
"dependencies": {
"jquery": "^3.3.1"
}
}
```
Demo - music-player:http://a-1.vip/demo/music-player/
- 前端工具庫
- HTML
- CSS
- 實用樣式
- JavaScript
- 模擬運動
- 深入數組擴展
- JavaScript_補充
- jQuery
- 自定義插件
- 網絡 · 后端請求
- css3.0 - 2019-2-28
- 選擇器
- 邊界樣式
- text 字體系列
- 盒子模型
- 動圖效果
- 其他
- less - 用法
- scss - 用法 2019-9-26
- HTML5 - 2019-3-21
- canvas - 畫布
- SVG - 矢量圖
- 多媒體類
- H5 - 其他
- webpack - 自動化構建
- webpack - 起步
- webpack -- 環境配置
- gulp
- ES6 - 2019-4-21
- HTML5補充 - 2019-6-30
- 微信小程序 2019-7-8
- 全局配置
- 頁面配置
- 組件生命周期
- 自定義組件 - 2019-7-14
- Git 基本操作 - 2019-7-16
- vue框架 - 2019-7-17
- 基本使用 - 2019-7-18
- 自定義功能 - 2019-7-20
- 自定義組件 - 2019-7-22
- 腳手架的使用 - 2019-7-25
- vue - 終端常用命令
- Vue Router - 路由 (基礎)
- Vue Router - 路由 (高級)
- 路由插件配置 - 2019-7-29
- 路由 - 一個實例
- VUEX_數據倉庫 - 2019-8-2
- Vue CLI 項目配置 - 2019-8-5
- 單元測試 - 2019-8-6
- 掛載全局組件 - 2019-11-14
- React框架
- React基本使用
- React - 組件化 2019-8-25
- React - 組件間交互 2019-8-26
- React - setState 2019-11-19
- React - slot 2019-11-19
- React - 生命周期 2019-8-26
- props屬性校驗 2019-11-26
- React - 路由 2019-8-28
- React - ref 2019-11-26
- React - Context 2019-11-27
- PureComponent - 性能優化 2019-11-27
- Render Props VS HOC 2019-11-27
- Portals - 插槽 2019-11-28
- React - Event 2019-11-29
- React - 渲染原理 2019-11-29
- Node.js
- 模塊收納
- dome
- nodejs - tsconfig.json
- TypeScript - 2020-3-5
- TypeScript - 基礎 2020-3-6
- TypeScript - 進階 2020-3-9
- Ordinary小助手
- uni-app
- 高德地圖api
- mysql
- EVENTS
- 筆記
- 關于小程序工具方法封裝
- Tool/basics
- Tool/web
- parsedUrl
- request