成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

Ververica / 3169人閱讀

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

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

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

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

之前我們提到過(guò)了通過(guò) api.registerCommand 來(lái)注冊(cè)命令的:

比如在 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 會(huì)設(shè)置 service.commands

接受 3 個(gè)參數(shù):

name

opts

fn

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

我們?cè)倏匆幌?cli-service/bin/vue-cli-service.js

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

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

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

里面會(huì)從 commands 里面?。?/p>

let command = this.commands[name]

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

    thursday 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<