欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vscode+gulp輕松開發(fā)小程序的完整步驟

 更新時(shí)間:2020年10月18日 15:06:38   作者:popup  
這篇文章主要給大家介紹了關(guān)于vscode+gulp輕松開發(fā)小程序的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

利用 gulp+vscode 來開發(fā)小程序的一個(gè)小工具,內(nèi)置擴(kuò)展了一系列的 wx 全局api方法,支持自定義配置相對(duì)應(yīng)的信息和別名等問題

安裝方法:

# 全局安裝
npm install -g wechat-mini-gulp
# 當(dāng)前小程序根目錄下運(yùn)行
wechat-gulp run init
# 安裝依賴
npm install

運(yùn)行

#開發(fā)環(huán)境
npm run gulpdev
#正式環(huán)境
npm run gulpbuild
# 測(cè)試環(huán)境
npm run gulptest
# 清空console
npm run gulpclean
# 同步routerConfig
npm run gulpsync

項(xiàng)目目錄

根目錄
├── gulp                    // gulp任務(wù)包
|   |—— pageTemplate        // 頁(yè)面模板文件
|   |—— cleanplugIn         // 清空console-gulp插件
│   ├── changeEnvMode.js    // 修改環(huán)境變量
│   ├── config.js           // 配置
│   ├── createdWechatFile.js    // 新增ybf.js自動(dòng)同步
│   ├── createdYbfcss.js        // 編譯scss
│   ├── createdYbftsbuild.js    // 編譯ts
│   ├── createYbfPageTask.js    // 編譯ybf.js
│   ├── env.js                 // 環(huán)境變量
│   ├── gulpCleanConsole.js     // 清空console-任務(wù)隊(duì)列
│   └── synsPages.js            // 同步app.json下的pages,后期可以處理路由權(quán)限
│   └── utils.js                // 工具方法
├── gulpfile.js             // gulp任務(wù)項(xiàng)
├── package.json            // npm依賴
└── toulPlugins                 // 擴(kuò)展小程序路由方法,實(shí)體方法等
    |—— extendPage          // 擴(kuò)展頁(yè)面方法
    |—— extendWxApi         // 擴(kuò)展wx內(nèi)置方法
    |—— index               // 導(dǎo)出plugins下文件
    |—— routerHandle        // 偽造vue-router,代理wx內(nèi)置跳轉(zhuǎn)方法
    └── routesConfig        // 偽造vue-routes,里面為當(dāng)前小程序頁(yè)面路由

使用全局方法

在app.js下面引入

// 導(dǎo)入擴(kuò)展方法
import './toulPlugins/index'

內(nèi)置提供全局wx方法

獲取運(yùn)行變量

該文件位于 /gulp/env.js ,對(duì)外導(dǎo)出 env

api路由方法

將微信方法做了二次封裝,擴(kuò)展了相對(duì)應(yīng)的 query 和 params 寫法

wx.$router.push // 類似vue的vue.router.push
wx.$router.replace // 類似vue的vue.router.replace
wx.$router.switchTab // 對(duì)應(yīng)微信tab組件的switchTab方法

wx.$router.push 和 wx.$router.replace 方法都支持傳入的參數(shù)對(duì)象或者字符串,如下

// 參數(shù)是字符串
wx.$router.push('/pages/index/index')

// 參數(shù)是對(duì)象
wx.$router.push({
 url: '/pages/index/index',
 params: {},
 query: {}
 events: {} // 對(duì)應(yīng)微信的派發(fā)事件
})

上面的方法傳參,在每個(gè)頁(yè)面內(nèi)部可以通過 this.__query 獲取到傳過來的 query , this._params 獲取傳過來的 params

// 這種寫法也支持 this.__params
wx.$router.push('/pages/index/index?id=1')

特別注意:!!!!!!

如果項(xiàng)目中需要進(jìn)行分享處理,需要單獨(dú)在 onLoad 拿到傳入的參數(shù),具體詳情看

微信小程序頁(yè)面路由(developers.weixin.qq.com/miniprogram… )

因?yàn)榉窒磉M(jìn)來的代碼,并沒有經(jīng)過 wx.$router.xxx 方法的處理

wxml頁(yè)面路由方法

擴(kuò)展了在 wxml 頁(yè)面上面直接調(diào)用 $toPage 方法,可以直接調(diào)用 wx.$router.xxx ,

需要在標(biāo)簽上傳入相對(duì)應(yīng)的 data-xxx

data-url 需要跳轉(zhuǎn)的路由地址

data-totype 跳轉(zhuǎn)的方法,支持:

  • redirect 或 replace
  • switchTab
  • reLaunch
  • push 默認(rèn)

具體使用如下

<view catch:tap="$goPage" data-url="/pages/mine/order/index?userType=isC&orderStatus=4" data-totype="push"></view>

上傳圖片

// pages.js
// 調(diào)用chooseImage后,返回來歷史路徑
wx.$wxUploadFile(tempFilePaths[0]).then(obj => {})
// 上傳圖片
wx.$wxUploadFile = (imageUrl) => {
}

節(jié)流函數(shù)

wx.$YBFThrottle = (cb, delay = 300) => {
 const nowPage = wx.$getNowPage()
 if (!nowPage.isCanClick) return
 nowPage.isCanClick = false
 cb && cb()

 setTimeout(() => {
 nowPage.isCanClick = true
 }, delay)
}

全局路由攔截處理

// /toulPlugins/extendWxApi.js
// 路由進(jìn)入之前
wx.$beforeRouter = (from, to, next) => {
 // ...someCode
}

// 路由進(jìn)入之后
wx.$afterRouter = (oldRoute, toRoute) => {
 // ...code
}

獲取當(dāng)前頁(yè)面信息

// 拿到當(dāng)前頁(yè)面數(shù)據(jù)
wx.$getNowPage = () => {
 // ...code
}

獲取上一頁(yè)信息

// 拿到上一前頁(yè)面數(shù)據(jù)
wx.$getPrevPage = () => {
 // ...code
}

確認(rèn)彈窗confirm

帶取消和確定按鈕

// confirm 
// return promise
wx.$confirm = (options) =>{}

模態(tài)框toast

// return promise
wx.$toast = (msg, cb) => {}

復(fù)制copy

// return void
wx.$copy = (msg) => {}

once函數(shù)

wx.$once(fn)

默認(rèn)配置

文件位于: gulp/config.js 距離

也可以自己擴(kuò)展配置,需要在項(xiàng)目根目錄下,新增 gulpconfig.js 文件,在進(jìn)行更改

// gulpconfig.js

// 以下信息為內(nèi)置默認(rèn)配置
module.exports = {
 // 路徑別名
 alisa: {
 '@plugins': "./plugins",
 '@scss': './scss',
 '@utils': './utils',
 '@api': './api',
 '@config': './config',
 '@images': './images'
 },
 // 需要編譯的別名js文件,本工具默認(rèn)監(jiān)聽ybf.js
 buildJsUrl: ['./pages/**/ybf.js'],
 // 這里建議寫好文件的路徑,方便gulp減少文件的監(jiān)聽
 
 // 需要編譯的scss文件,如果是abc.scss 則編譯成abc.scss
 buildScssUrl: ['./pages/**/*.scss', './components/**/*.scss'],
 
 // ts編譯
 buildTsUrl: ['./**/*.ts'],
 // app.json路徑 默認(rèn)根目錄
 appJsonFilePath: './app.json',
 // 是否開啟ts編譯
 isTs: false
}

routesConfig配置

該文件主要為了配置 wx.$beforeRouter 和 wx.$afterRouter 而配置的文件

文件位于 ./toulPlugins/routesConfig.js

例如:

export default [
 {
 path: 'pages/index/index' // app.json 相對(duì)應(yīng)的 pages下的路徑
 meta: {
  noPage: true // 提示 頁(yè)面暫未開發(fā)
 }
 }
]

Gulp文件講解

位于 /gulp 下

環(huán)境變量

實(shí)現(xiàn)小程序向webpack開發(fā)一樣,自動(dòng)編譯api環(huán)境

// changeEnvMode.js
// 手動(dòng)改變 /config/env.ts文件,默認(rèn)mode=dev 并執(zhí)行ts編譯
function changeEnvMode(mode) {
 // ...somecode
 buildTypeScript({})
}

此文件的作用大大提高了api的調(diào)整,避免開發(fā)人員進(jìn)行 注釋關(guān)閉 相關(guān)代碼

監(jiān)聽ybf.js生成index.js

// createYbfPageTask.js
// 監(jiān)聽ybf文件,解決文件@引入,只支持監(jiān)聽/pages目錄下,并生成相對(duì)應(yīng)的index.js,
function createYbfPageTask(event) {
 // ...somecode 
}

監(jiān)聽scss文件生成index.wxss

// createdYbfcss.js
// 該函數(shù)支持px轉(zhuǎn)rpx 支持文件@引入,支持監(jiān)聽component和pages下的文件index.scss,生成相對(duì)應(yīng)的index.scss
function createdYbfcss(event) {
 // ...somecode 
}

監(jiān)聽ts文件生成相對(duì)應(yīng)的js

// buildTypeScript.js
// 監(jiān)聽當(dāng)前目錄下所有ts文件,改動(dòng)一個(gè)ts文件后,所有ts文件都會(huì)自動(dòng)編譯
function buildTypeScript(event) {
 // ...somecode 
}

刪除文件存在的console.log

// gulpCleanConsole.js
function gulpCleanConsole() {
 // ...somecode
}

監(jiān)聽新建ybf.js文件(此文件是重點(diǎn))

// createdWechatFile.js
// 監(jiān)聽pages下所有文件的ybf.js生成,如果生成創(chuàng)建wxss,wxml,scss,ybf.js,json文件
function generateFile(event) {
 
 generateJson()
 generateRoute()
}
// 向app.json文件內(nèi)部pages下新增頁(yè)面路由
function generateJson(pageUrl) { 
}
// 向/toulPlugins/routesConfig.js做路由同步
function generateRoute(pageUrl) {}

在需要新建 小程序page 的時(shí)候,在相對(duì)應(yīng)文件夾下,新增 ybf.js 文件就會(huì)新增創(chuàng)建相對(duì)應(yīng)的小程序文件及路由

同步app.json的pages

// synsPages.js
// 該文件只為了同步app.json下pages對(duì)象,為了后期擴(kuò)展進(jìn)行路由攔截配置等問題
function syncPage() {}

歡迎star和pr

github地址: github.com/popup-jie/w

總結(jié)

到此這篇關(guān)于vscode+gulp輕松開發(fā)小程序的文章就介紹到這了,更多相關(guān)vscode+gulp開發(fā)小程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • TypeScript 中括號(hào)用法小結(jié)

    TypeScript 中括號(hào)用法小結(jié)

    本文主要介紹了TypeScript 中括號(hào)用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • js實(shí)現(xiàn)兼容IE和FF的上下層的移動(dòng)

    js實(shí)現(xiàn)兼容IE和FF的上下層的移動(dòng)

    本來是很簡(jiǎn)單的一個(gè)功能,可是一開始弄的時(shí)候,還有IE能實(shí)現(xiàn),F(xiàn)F總是不能實(shí)現(xiàn),在網(wǎng)上看了半天,也沒弄出個(gè)所以然,所以在同事的幫忙下,總算弄出來了,瀏覽器的兼容性考的還是細(xì)節(jié)上面的東西,所有關(guān)于細(xì)節(jié)的,我會(huì)用注釋標(biāo)出來的。
    2015-05-05
  • javascript中CheckBox全選終極方案

    javascript中CheckBox全選終極方案

    在javascript頁(yè)面中實(shí)現(xiàn)CheckBox或者Radio的選中狀態(tài)是一件很容易的事情,下面我們來給大家展示下在asp.net中使用javascript中CheckBox全選終極方案,有需要的小伙伴可以參考下。
    2015-05-05
  • JS中fetch()用法實(shí)例詳解

    JS中fetch()用法實(shí)例詳解

    在JS中使用fetch更加高效地進(jìn)行網(wǎng)絡(luò)請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于JS中fetch()用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 微信小程序van-field中的left-icon屬性自定義實(shí)現(xiàn)過程

    微信小程序van-field中的left-icon屬性自定義實(shí)現(xiàn)過程

    在小程序中,我們是用 Vant 組件庫(kù)時(shí),常常會(huì)用到 van-field 輸入框控件,今天我將跟大家分享的是 van-field 輸入框控件中的 left-icon 屬性的自定義怎么實(shí)現(xiàn),感興趣的朋友一起看看吧
    2023-08-08
  • javascript發(fā)表評(píng)論或者留言時(shí)的展開效果

    javascript發(fā)表評(píng)論或者留言時(shí)的展開效果

    javascript發(fā)表評(píng)論或者留言時(shí)的展開效果...
    2007-07-07
  • TypeScript 安裝使用及基本數(shù)據(jù)類型

    TypeScript 安裝使用及基本數(shù)據(jù)類型

    這篇文章主要介紹了TypeScript 安裝使用及基本數(shù)據(jù)類型,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)視頻添加水印的示例代碼

    JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)視頻添加水印的示例代碼

    這篇文章主要介紹了通過js給網(wǎng)頁(yè)視頻添加水印,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 10個(gè)新的最有前途的JavaScript框架

    10個(gè)新的最有前途的JavaScript框架

    了解最新的框架,提升我們的開發(fā)效率。
    2009-03-03
  • TypeScript判斷對(duì)象類型的4種方式代碼

    TypeScript判斷對(duì)象類型的4種方式代碼

    這篇文章主要給大家介紹了關(guān)于TypeScript判斷對(duì)象類型的4種方式代碼,TypeScript能根據(jù)一些簡(jiǎn)單的規(guī)則推斷(檢查)變量的類型,你可以通過實(shí)踐很快的了解它們,需要的朋友可以參考下
    2023-07-07

最新評(píng)論