編寫一個 Vscode 插件 | 從創(chuàng)建到發(fā)布 | 一鍵刪除函數(shù)

當執(zhí)行 yo 報如下錯誤時:
/usr/local/lib/node_modules/yo/node_modules/macos-release/index.js:27
const 【name, version】 = nameMap.get(release);
^
TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
可以打開報錯指出的第一行的文件(可能與以上路徑不同,沒關(guān)系),修改成如下內(nèi)容即可:
const nameMap = new Map([
?[22, ['Ventura', '13']],
?[21, ['Monterey', '12']],
?[20, ['Big Sur', '11']],
?[19, ['Catalina', '10.15']],
?[18, ['Mojave', '10.14']],
?[17, ['High Sierra', '10.13']],
?[16, ['Sierra', '10.12']],
?[15, ['El Capitan', '10.11']],
?[14, ['Yosemite', '10.10']],
?[13, ['Mavericks', '10.9']],
?[12, ['Mountain Lion', '10.8']],
?[11, ['Lion', '10.7']],
?[10, ['Snow Leopard', '10.6']],
?[9, ['Leopard', '10.5']],
?[8, ['Tiger', '10.4']],
?[7, ['Panther', '10.3']],
?[6, ['Jaguar', '10.2']],
?[5, ['Puma', '10.1']]
]);
主要就是沒有增加對 mac 新系統(tǒng)的兼容
具體參見:https://github.com/yeoman/yo/issues/753
當執(zhí)行報如下錯誤時:
Command 'xxx' resulted in an error ('import' and 'export' may appear only with 'sourceType: "module"' (2:4))
不是 eslint 配置有誤(如果你在網(wǎng)上搜索時,大部分都提示修改 eslint 配置),而是 parse 需要傳入第二個參數(shù):
{
???sourceType: 'module',
?}
具體參見官方例子:
https://babel.docschina.org/docs/en/babel-parser/#example
這里的例子使用的是 require,但使用 import 也是可以的
所以當你在網(wǎng)上查詢的解決方法無效時,閱讀官方文檔是最快的解決方式
這是由于 @babel/parser 的 startLine: By default, the parsed code is treated as if it starts from line 1, column 0. 與 vscode 的 line A zero-based line value. 不同
所以我們可以給 parser 指定一下 startLine:
const ast = parse(code, {
?sourceType: 'module',
?startLine: 0
})
這里的 publisher name 不是崔大說的那個 name,而是需要在 https://marketplace.visualstudio.com/manage 這里注冊一下的,注冊完以后再使用 vsce login + 剛注冊的 name。推測崔大可能注冊的 name 和視頻里說的 name 是一樣的,但這倆 name 可以不一致,只要保證全球唯一就可以了