自己写的web extension无法加载入口js文件
已经加了browser字段,并且package.json是正常加载的,但是入口文件没有请求。 代码是参考vscode的webextension例子 package.json文件如下:
{
"name": "webext2",
"displayName": "webext2",
"description": "",
"version": "0.0.1",
"engines": {
"vscode": "^1.80.0"
},
"categories": [
"Other"
],
"activationEvents": [],
"browser": "./dist/web/extension.js",
"contributes": {
"commands": [
{
"command": "webext2.helloWorld",
"title": "Hello World"
}
]
},
"scripts": {
"test": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=. --extensionTestsPath=dist/web/test/suite/index.js",
"pretest": "yarn run compile-web",
"vscode:prepublish": "yarn run package-web",
"compile-web": "webpack",
"watch-web": "webpack --watch",
"package-web": "webpack --mode production --devtool hidden-source-map",
"lint": "eslint src --ext ts",
"run-in-browser": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=. .",
"server": "npx serve --cors -l 5000 --ssl-cert ./certs/localhost.pem --ssl-key ./certs/localhost-key.pem"
},
"devDependencies": {
"@types/vscode": "^1.80.0",
"@types/mocha": "^10.0.1",
"eslint": "^8.41.0",
"@typescript-eslint/eslint-plugin": "^5.59.8",
"@typescript-eslint/parser": "^5.59.8",
"mocha": "^10.2.0",
"typescript": "^5.1.3",
"@vscode/test-web": "^0.0.44",
"ts-loader": "^9.4.3",
"webpack": "^5.85.0",
"webpack-cli": "^5.1.1",
"@types/webpack-env": "^1.18.1",
"assert": "^2.0.0",
"process": "^0.11.10"
}
}
此时按F1运行Hello Work的cmd会报错
然后看chrome的network是可以找到这个package.json的加载,但是找不到extension文件的加载
此外,有没有带入口js文件的webextension可以参考一下
运行的是Hello Word,上面打错了
@huanghuixin1 你的 activationEvents 没有声明,试试加个 *? 参考 https://code.visualstudio.com/api/references/activation-events
加上了也不行,调整了一下格式如下
{
"name": "webext2",
"displayName": "webext2",
"description": "",
"version": "0.0.1",
"publisher": "hx",
"preview": true,
"engines": {
"kaitian": "*",
"vscode": "^1.31.1",
"node": ">=10.2.0"
},
"categories": [
"Other"
],
"activationEvents": [
"*"
],
"browser": "./dist/web/extension.js",
"contributes": {
"commands": [
{
"command": "webext2.helloWorld",
"title": "Hello World"
}
]
}
}
@erha19
@huanghuixin1 参照一下这两个案例: helloworld-web-sample lsp-web-extension-sample
@erha19 感谢回复 这个我其实之前就看过,然后又拿过来仔细测了一下还是不行。 现在问题是,除了入口js文件不加载,其他都正常。包括主题插件里的样式和图标
然后我看了下core项目中extension包,但我没找到入口js加载对应的逻辑在哪里
@erha19 感谢回复 这个我其实之前就看过,然后又拿过来仔细测了一下还是不行。 现在问题是,除了入口js文件不加载,其他都正常。包括主题插件里的样式和图标
然后我看了下core项目中extension包,但我没找到入口js加载对应的逻辑在哪里
你插件有build过吗 加载插件的话 根据 package.json browser来加载插件js 确认下你插件下 有 ./dist/web/extension.js 这个吗
或者看下有没有加载的具体报错信息
@AhkunTa 肯定是build过的,而且就算没有也应该会有请求的记录报404,但实际的结果是没有请求。问题就出在没有报错信息。
并且我发现这个插件,就是官方提供的alex-ext-public.typescript-language-features-worker,他里面也有browser字段,但是也没有请求extension.js
@huanghuixin1 https://github.com/opensumi/core/blob/main/packages/extension/src/browser/extension-worker.service.ts#L66 这里是worker插件的初始化逻辑 可以debug看下这个插件在这里有没有初始化 很大概率是激活插件出了问题