基於Gulp構建的微信小程序開發工做流html
目前開發微信小程序時,可選的技術方案大概有四種,分別是:vue
三種開發方案,各有優劣。使用第三方框架開發,能夠享受框架帶來的開發便利,但對於小程序新增的諸多特性和功能,好比WXS模塊、自定義組件和插件等,受制於第三方框架,沒法使用。node
而原生小程序的開發模式,又過於簡陋,就樣式來講,寫慣了less,stylus和sass的同窗必定沒法忍受wxss的這種寫法,基於此,決定使用gulp自動化工具來構建一套微信小程序開發的基礎模板,在徹底保留微信小程序功能和特性的基礎上,又能夠的使用less
來寫樣式,同時加入圖片壓縮,命令行快速建立模板等特性,如此開發,快哉,快哉!git
github走起github
gulp+less
構建的微信小程序工程項目page
、template
和component
$ npm install --global gulp-cli
複製代碼
$ git clone https://github.com/YangQiGitHub/wx-miniprogram-boilerplate.git
複製代碼
$ cd wx-miniprogram-boilerplate && npm install
複製代碼
$ npm run dev
複製代碼
gulp auto -p mypage 建立名爲mypage的page文件
gulp auto -t mytpl 建立名爲mytpl的template文件
gulp auto -c mycomponent 建立名爲mycomponent的component文件
gulp auto -s index -p mypage 複製pages/index中的文件建立名稱爲mypage的頁面
複製代碼
$ npm run build
複製代碼
wx-miniprogram-boilerplate
├── dist // 編譯後目錄
├── node_modules // 項目依賴
├── src
│ ├── components // 微信小程序自定義組件
│ ├── images // 頁面中的圖片和icon
│ ├── pages // 小程序page文件
│ ├── styles // ui框架,公共樣式
│ ├── template // 模板
│ ├── utils // 公共js文件
│ ├── app.js
│ ├── app.json
│ ├── app.less
│ ├── project.config.json // 項目配置文件
│ └── api.config.js // 項目api接口配置
├── .gitignore
├── package-lock.json
├── package.json
└── README.md
複製代碼
Tasks:
dev 開發編譯,同時監聽文件變化
build 總體編譯
clean 清空產出目錄
wxml 編譯wxml文件(僅僅copy)
js 編譯js文件,同時進行ESLint語法檢查
json 編譯json文件(僅僅copy)
wxss 編譯less文件爲wxss
img 編譯壓縮圖片文件
watch 監聽開發文件變化
auto 自動根據模板建立page,template或者component(小程序自定義組件)
gulp auto
選項:
-s, --src copy的模板 [字符串] [默認值: "_template"]
-p, --page 生成的page名稱 [字符串]
-t, --template 生成的template名稱 [字符串]
-c, --component 生成的component名稱 [字符串]
--msg 顯示幫助信息 [布爾]
示例:
gulp auto -p mypage 建立名爲mypage的page文件
gulp auto -t mytpl 建立名爲mytpl的template文件
gulp auto -c mycomponent 建立名爲mycomponent的component文件
gulp auto -s index -p mypage 複製pages/index中的文件建立名稱爲mypage的頁面
複製代碼
Q: 爲何工做流中沒有加入js轉換,樣式補全以及代碼壓縮? A: 微信開發者工具中自帶babel將ES6轉ES5,樣式補全以及js代碼壓縮等功能,在此工做流中不作額外添加。 npm
Q: _template
目錄的文件有什麼用? A: 使用gulp auto
命令自動生成文件,-s
參數能夠指定copy的對象,默認狀況下是以對應目錄下文件夾爲_template
中的文件爲copy對象的。開發者能夠根據業務需求,自定義_template
下的文件。json
Q: _template
目錄的文件是否會被編譯到dist
目錄? A: 不會。gulp
將持續更新,若是有新的建議,歡迎建立Issue或發送PR,感謝你的支持和貢獻。小程序