摘要:首先,我們看到在中有的定義我們看到和其實(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)于的原創(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ì)新版本腳手架使用...
摘要:不符合則打印錯(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...
摘要:首先,請(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...
摘要:發(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 ...
閱讀 1753·2021-11-23 09:51
閱讀 1251·2019-08-30 13:57
閱讀 2350·2019-08-29 13:12
閱讀 2091·2019-08-26 13:57
閱讀 1347·2019-08-26 11:32
閱讀 1055·2019-08-23 15:08
閱讀 810·2019-08-23 14:42
閱讀 3170·2019-08-23 11:41