簡體   English   中英

安裝擴展后找不到模塊

[英]Can't find the module after extension is installed

我正在嘗試創建VS Code擴展。 當我開發時它工作正常,但是當我創建包並將其安裝到VS Code時它失敗並出現以下錯誤:

  ERR Cannot find module 'request': Error: Cannot find module 'request'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:602:15)
    at Function.Module._load (internal/modules/cjs/loader.js:528:25)
    at Function.t._load (c:\Users\USER\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:729:537)
    at Function.t.getExtensionPathIndex.then.a._load (c:\Users\USER\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:691:639)
    at Function.t.getExtensionPathIndex.then.r._load (c:\Users\USER\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:655:197)
    at Module.require (internal/modules/cjs/loader.js:658:17)
    at n (c:\Users\USER\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\loader.js:15:874)
    at openBambooPlanUrlInBrowser.GIT.getGitBranchFromFileName (C:\Users\USER\.vscode\extensions\dUSER.markdown-table-of-contents-0.0.1\out\extension.js:397:41)
    at getGitBranchFromFileName.exec (C:\Users\USER\.vscode\extensions\dUSER.markdown-table-of-contents-0.0.1\out\extension.js:383:17)
    at ChildProcess.exithandler (child_process.js:294:7)
    at ChildProcess.emit (events.js:182:13)
    at maybeClose (internal/child_process.js:961:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:5)

我的代碼:

async openBambooPlanUrlInBrowser(fileName: string) {
    new GIT().getGitBranchFromFileName(fileName, (branch: string) => {
        var config: any = vscode.workspace.getConfiguration('markdown-table-of-contents').get('bitbucketRepositories');
        for (var setting of config) {

            if (fileName.toLowerCase().startsWith(setting.folder.toLowerCase())) {
                branch = branch.replace('/', '-');
                let bambooHost = vscode.workspace.getConfiguration('markdown-table-of-contents').get('atlassianBambooHost');
                const request = require('request');

                request(
                    {
                        url: `${bambooHost}/rest/api/latest/plan/${setting.bambooPlanKey}/branch/${branch}.json`,
                        headers: {
                            "Authorization": 'Basic ' + vscode.workspace.getConfiguration('markdown-table-of-contents').get('atlassianAuthHash')
                        }
                    },
                    (error: string, response: string, body: string) => {
                        let planKey = JSON.parse(body).key;
                        vscode.env.openExternal(vscode.Uri.parse(`${bambooHost}/browse/${planKey}`));
                    }
                );

            }
        }
    });

}

來自package.json的依賴項

"dependencies": {
    "child_process": "^1.0.2",
    "clipboardy": "^1.2.3",
    "fs": "0.0.1-security",
    "iconv-lite": "^0.4.24",
    "path": "^0.12.7",
    "request": "^2.88.0",
    "util": "^0.11.1",
    "xml2js": "^0.4.19",
    "xmldom": "^0.1.27"
}

根文件夾:

.gitignore
.vscode
.vscodeignore
depl.bat
markdown-table-of-contents-0.0.1.vsix
node_modules
out
package-lock.json
package.json
src
tsconfig.json
tslint.json

對我來說,解決方案是從擴展的代碼根文件夾運行npm install <package_name> (注意沒有“-g”)。 Vscode 將擴展放在其 [擴展文件夾][1] 中,導航到那里執行npm install

示例:對於 linux/mac

cd ~/.vscode/extensions
cd your.extension
npm install

這也自動將它添加到 devDependencies,並且擴展從那里完美運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM