国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[Vue CLI 3] 插件開發(fā)之 registerCommand 到底做了什么

Ververica / 3080人閱讀

摘要:首先,我們看到在中有的定義我們看到和其實多是依托的之前我們提到過了通過來注冊命令的比如在我們看一下文件函數(shù)會設(shè)置接受個參數(shù)我們再看一下會調(diào)用方法里面會從里面取最終執(zhí)行它里面的

首先,我們看到在 package.json 中有 scripts 的定義:

"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
}

我們看到 serve 和 build 其實多是依托的 vue-cli-service

之前我們提到過了通過 api.registerCommand 來注冊命令的:

比如在 cli-service/lib/commands/serve.js

module.exports = (api, options) => {
  api.registerCommand("serve", {
    // ...
  }, async function serve (args) {
  })
}

我們看一下 cli-service/lib/PluginAPI.js 文件:

class PluginAPI {
  constructor (id, service) {
    this.id = id
    this.service = service
  }
}

函數(shù) registerCommand 會設(shè)置 service.commands

接受 3 個參數(shù):

name

opts

fn

registerCommand (name, opts, fn) {
  if (typeof opts === "function") {
    fn = opts
    opts = null
  }
  this.service.commands[name] = { fn, opts: opts || {}}
}

我們再看一下 cli-service/bin/vue-cli-service.js

service.run(command, args, rawArgv).catch(err => {
  error(err)
  process.exit(1)
})

cli-service/lib/Service.js 會調(diào)用 run 方法:

async run (name, args = {}, rawArgv = []) {
}

里面會從 commands 里面取:

let command = this.commands[name]

最終執(zhí)行它里面的 fn

const { fn } = command
return fn(args, rawArgv)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/97323.html

相關(guān)文章

  • [全網(wǎng)最全的 Vue CLI 3 原創(chuàng)合集] 你要的這里都有

    摘要:慢慢地,關(guān)于的原創(chuàng)學(xué)習(xí)文章已經(jīng)寫了多篇了會一直放出來,目前篇,因此做一個合集,獻給那些對新版本腳手架使用和背后設(shè)計感興趣的同學(xué),都是一步一步去看源碼,也給官方提了幾次,合進去了幾個原創(chuàng)不易,歡迎大家互相轉(zhuǎn)發(fā),期望大家一起快速過度到版本目錄 慢慢地,關(guān)于 Vue CLI 3 的原創(chuàng)學(xué)習(xí)文章已經(jīng)寫了 20 多篇了(會一直放出來,目前 23 篇), 因此做一個合集,獻給那些對新版本腳手架使用...

    phpmatt 評論0 收藏0
  • vue-cli系列vue-cli-service整體架構(gòu)淺析。

    摘要:不符合則打印錯誤并退出。上面實例化并調(diào)用了的方法,這里從構(gòu)造函數(shù)到一路瀏覽即可。每個插件的導(dǎo)出為例如中的根據(jù)命令行收到的參數(shù),執(zhí)行該插件的業(yè)務(wù)邏輯業(yè)務(wù)邏輯需要的其他函數(shù)注意著里是先在構(gòu)造函數(shù)中了插件。并以對象形式返回。 概述 vue啟動一個項目的時候,需要執(zhí)行npm run serve,其中這個serve的內(nèi)容就是vue-cli-service serve。可見,項目的啟動關(guān)鍵是這個v...

    FrancisSoung 評論0 收藏0
  • [Vue CLI 3] vue inspect 的源碼設(shè)計實現(xiàn)

    摘要:首先,請記住它在新版本的腳手架項目里面非常重要它有什么用呢能快速地在控制臺看到對應(yīng)生成的配置對象。最后多是通過的函數(shù)來生成,最終在控制臺打印 首先,請記住: 它在新版本的腳手架項目里面非常重要 它有什么用呢? inspect internal webpack config 能快速地在控制臺看到對應(yīng)生成的 webpack 配置對象。 首先它是 vue 的一個擴展命令,在文件 @vue/c...

    leiyi 評論0 收藏0
  • VS Code插件開發(fā)介紹(一)

    摘要:發(fā)布插件插件開發(fā)完后就可以發(fā)布了,需要安裝安裝完后,需要去注冊并生成一個。總結(jié)本文介紹了插件開發(fā)的基本流程,實現(xiàn)了一個簡單的插件。更多的開發(fā)技巧,可以看這個系列的第二篇插件開發(fā)介紹二 前言 前段時間做了一個基于命令行的效率工具,可以自動生成組件的模板代碼。自己用起來還覺得挺好,但在組內(nèi)案例幾次后大家都不愿意用,究其原因還是命令行工具使用起來門檻有點高,不方便。由于組內(nèi)已經(jīng)統(tǒng)一使用VS ...

    thursday 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<