项目环境配置

This commit is contained in:
xuyanfeng 2021-04-03 16:14:37 +08:00
parent 3f60e58c71
commit 820ce75422
12 changed files with 263 additions and 79 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
.idea
CocosCreatorInspector/src/build
/source/artifacts/

205
source/package-lock.json generated
View File

@ -3324,6 +3324,12 @@
"isarray": "^1.0.0"
}
},
"buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz",
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
"dev": true
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
@ -3945,6 +3951,12 @@
"integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=",
"dev": true
},
"colors": {
"version": "1.4.0",
"resolved": "https://registry.npm.taobao.org/colors/download/colors-1.4.0.tgz",
"integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=",
"dev": true
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
@ -7140,6 +7152,24 @@
}
}
},
"imports-loader": {
"version": "0.8.0",
"resolved": "https://registry.npm.taobao.org/imports-loader/download/imports-loader-0.8.0.tgz?cache=0&sync_timestamp=1612180878719&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimports-loader%2Fdownload%2Fimports-loader-0.8.0.tgz",
"integrity": "sha1-Aw6lG4ygWXfECjq/2bQIj+C+mmk=",
"dev": true,
"requires": {
"loader-utils": "^1.0.2",
"source-map": "^0.6.1"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
"dev": true
}
}
},
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
@ -10892,6 +10922,26 @@
"uuid": "^3.3.2"
}
},
"request-promise-core": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.4.tgz",
"integrity": "sha1-Pu3UIjII1BmGe3jOgVFn0QWToi8=",
"dev": true,
"requires": {
"lodash": "^4.17.19"
}
},
"request-promise-native": {
"version": "1.0.9",
"resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.9.tgz",
"integrity": "sha1-5AcSBSal79yaObKKVnm/R7nZ3Cg=",
"dev": true,
"requires": {
"request-promise-core": "1.1.4",
"stealthy-require": "^1.1.1",
"tough-cookie": "^2.3.3"
}
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
@ -11732,6 +11782,12 @@
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
"dev": true
},
"stealthy-require": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz",
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
"dev": true
},
"stream-browserify": {
"version": "2.0.2",
"resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz",
@ -11794,6 +11850,17 @@
"strip-ansi": "^6.0.0"
}
},
"string.prototype.padstart": {
"version": "3.1.2",
"resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.2.tgz",
"integrity": "sha1-+bnOZr7dfAastA7ObjTGBG4aAZ0=",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.18.0-next.2"
}
},
"string.prototype.trimend": {
"version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz",
@ -12691,6 +12758,34 @@
"integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
"dev": true
},
"useragent": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/useragent/download/useragent-2.3.0.tgz",
"integrity": "sha1-IX+UOtVAyyEoZYqyP8lg9qiMmXI=",
"dev": true,
"requires": {
"lru-cache": "4.1.x",
"tmp": "0.0.x"
},
"dependencies": {
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427582110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
"integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
"dev": true,
"requires": {
"pseudomap": "^1.0.2",
"yallist": "^2.1.2"
}
},
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
"dev": true
}
}
},
"util": {
"version": "0.11.1",
"resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz",
@ -12799,6 +12894,43 @@
"resolved": "https://registry.npm.taobao.org/vue-class-component/download/vue-class-component-7.2.6.tgz",
"integrity": "sha1-hHHgN7jkdi9aRkaG4Z5a/HCFAuQ="
},
"vue-cli-plugin-browser-extension": {
"version": "0.25.2",
"resolved": "https://registry.npm.taobao.org/vue-cli-plugin-browser-extension/download/vue-cli-plugin-browser-extension-0.25.2.tgz",
"integrity": "sha1-5WsR9YoKQpiF12bCcpihvKcQiu4=",
"dev": true,
"requires": {
"@vue/cli-shared-utils": "^3.0.0-rc.3",
"copy-webpack-plugin": "^5.1.2",
"imports-loader": "^0.8.0",
"webextension-polyfill": "^0.4.0",
"webpack": "^4.16.0",
"webpack-extension-reloader": "^1.1.0",
"zip-webpack-plugin": "^3.0.0"
},
"dependencies": {
"@vue/cli-shared-utils": {
"version": "3.12.1",
"resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.1.tgz?cache=0&sync_timestamp=1616590545070&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-3.12.1.tgz",
"integrity": "sha1-vPB2KH3a3uu7l8anSN/p/1DsjfA=",
"dev": true,
"requires": {
"@hapi/joi": "^15.0.1",
"chalk": "^2.4.1",
"execa": "^1.0.0",
"launch-editor": "^2.2.1",
"lru-cache": "^5.1.1",
"node-ipc": "^9.1.1",
"open": "^6.3.0",
"ora": "^3.4.0",
"request": "^2.87.0",
"request-promise-native": "^1.0.7",
"semver": "^6.0.0",
"string.prototype.padstart": "^3.0.0"
}
}
}
},
"vue-eslint-parser": {
"version": "7.6.0",
"resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.6.0.tgz",
@ -13127,6 +13259,12 @@
"defaults": "^1.0.3"
}
},
"webextension-polyfill": {
"version": "0.4.0",
"resolved": "https://registry.npm.taobao.org/webextension-polyfill/download/webextension-polyfill-0.4.0.tgz",
"integrity": "sha1-nMWmDw8r+Qems0n91+YXAfVJVvk=",
"dev": true
},
"webpack": {
"version": "4.46.0",
"resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1616589598083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz",
@ -13590,6 +13728,54 @@
}
}
},
"webpack-extension-reloader": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/webpack-extension-reloader/download/webpack-extension-reloader-1.1.4.tgz",
"integrity": "sha1-9eX6WA5hfBFMxF3bbrJcXWpN0vY=",
"dev": true,
"requires": {
"@types/webpack": "^4.39.8",
"@types/webpack-sources": "^0.1.5",
"colors": "^1.4.0",
"lodash": "^4.17.15",
"minimist": "^1.2.0",
"useragent": "^2.3.0",
"webextension-polyfill": "^0.5.0",
"webpack-sources": "^1.4.3",
"ws": "^7.2.0"
},
"dependencies": {
"@types/webpack-sources": {
"version": "0.1.8",
"resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-0.1.8.tgz",
"integrity": "sha1-B411QQQ1mT7IoKKFXohwbz91H4E=",
"dev": true,
"requires": {
"@types/node": "*",
"@types/source-list-map": "*",
"source-map": "^0.6.1"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
"dev": true
},
"webextension-polyfill": {
"version": "0.5.0",
"resolved": "https://registry.npm.taobao.org/webextension-polyfill/download/webextension-polyfill-0.5.0.tgz",
"integrity": "sha1-eV4L9qK46tzbbtrs0WnpIox0dRk=",
"dev": true
},
"ws": {
"version": "7.4.4",
"resolved": "https://registry.npm.taobao.org/ws/download/ws-7.4.4.tgz?cache=0&sync_timestamp=1615063746103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.4.4.tgz",
"integrity": "sha1-ODvJdCyyAikskHfOq29gR7F/LVk=",
"dev": true
}
}
},
"webpack-log": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477461878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz",
@ -13822,6 +14008,15 @@
"integrity": "sha1-Yd+FwRPt+1p6TjbriqYO9CPLyQo=",
"dev": true
},
"yazl": {
"version": "2.5.1",
"resolved": "https://registry.npm.taobao.org/yazl/download/yazl-2.5.1.tgz",
"integrity": "sha1-o9ZdPdZZpbCTeFDoYJ8i//orXDU=",
"dev": true,
"requires": {
"buffer-crc32": "~0.2.3"
}
},
"yorkie": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz",
@ -13889,6 +14084,16 @@
"dev": true
}
}
},
"zip-webpack-plugin": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/zip-webpack-plugin/download/zip-webpack-plugin-3.0.0.tgz",
"integrity": "sha1-Y7PBc/GoegBpFc1zKKPEC0TcjjI=",
"dev": true,
"requires": {
"webpack-sources": "^1.1.0",
"yazl": "^2.4.3"
}
}
}
}

View File

@ -4,9 +4,9 @@
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build --watch",
"lint": "vue-cli-service lint",
"prepare1": "vue-cli-service build --target lib --name content src/content.ts"
"build": "vue-cli-service build",
"build-watch": "vue-cli-service build --watch",
"lint": "vue-cli-service lint"
},
"dependencies": {
"@types/fs-extra": "^9.0.9",
@ -37,7 +37,8 @@
"lint-staged": "^9.5.0",
"prettier": "^2.2.1",
"typescript": "~4.1.5",
"vue-template-compiler": "^2.6.11"
"vue-template-compiler": "^2.6.11",
"vue-cli-plugin-browser-extension": "latest"
},
"browserslist": [
"> 1%",

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -3,6 +3,7 @@ import * as PluginMsg from "./core/plugin-msg"
let Devtools: chrome.runtime.Port | null = null;
let DevtoolsPanel: chrome.runtime.Port | null = null;
let Content: chrome.runtime.Port | null = null;
console.error('on background')
function shortConnectionLink(request: any, sender: any, sendResponse: any) {
// console.log(`%c[短连接|id:${sender.id}|url:${sender.url}]\n${JSON.stringify(request)}`, 'background:#aaa;color:#BD4E19')
@ -28,7 +29,7 @@ function longConnectionLink(data: any, sender: any) {
}
// 长连接
chrome.runtime.onConnect.addListener(function (port) {
chrome.runtime.onConnect.addListener((port) => {
console.log(`%c[长连接:${port.name}] 建立链接!`, "background:#aaa;color:#ff0000");
port.onMessage.addListener(longConnectionLink);
port.onDisconnect.addListener(function (port) {

View File

@ -1,4 +1,9 @@
import * as PluginMsg from '../core/plugin-msg'
console.log('on devtools')
debugger
import Manifest from '../manifest.json'
Manifest.devtools_page
// 对应的是Elements面板的边栏
chrome.devtools.panels.elements.createSidebarPane('Cocos', function (sidebar) {
sidebar.setObject({some_data: "some data to show!"});

View File

@ -3,7 +3,6 @@
"version": "1.1.0",
"name": "Cocos Creator Inspector",
"description": "Cocos Creator Inspector",
"default_locale": "en",
"permissions": [
"activeTab",
"<all_urls>",

View File

@ -1,54 +0,0 @@
module.exports = {
name: "Cocos Creator Inspector",
version: "1.0.1",
description: "Cocos Creator Inspector",
browser_action: {
default_title: "CC-Inspector",
default_icon: "icon/icon48.png",
default_popup: "popup.html"
},
icons: {
48: "icon/icon48.png"
},
devtools_page: "devtools_panel.html",
content_scripts: [
{
matches: ["<all_urls>"],
js: ["js/content.js"],
run_at: "document_end",
all_frames: true
}
],
background: {
scripts: ["js/background.js"],
persistent: false,// 需要时开启
},
// optionsV1的写法
options_page: "options.html",
// optionsV2的写法
options_ui: {
page: "options.html",
// 添加一些默认的样式,推荐使用
chrome_style: true,
},
manifest_version: 2,
permissions: [
"tabs",
"http://*/*",
"https://*/*",
"*://*/*",
"audio",
"system.cpu",
"clipboardRead",
"clipboardWrite",
"system.memory",
"processes",// 这个权限只在chrome-dev版本都才有
"tabs",
"storage",
"nativeMessaging",
"contextMenus",
"notifications",
],
web_accessible_resources: ["*/*", "*"],
content_security_policy: "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

View File

@ -42,6 +42,7 @@
<script lang="ts">
import {Component, Vue} from "vue-property-decorator";
import HelloWorld from "./HelloWorld.vue";
import Manifest from '../manifest.json'
@Component({
components: {
@ -68,9 +69,9 @@ export default class App extends Vue {
onClickOptions() {
if (chrome && chrome.tabs) {
const manifest = require('../manifest/index')
if (manifest.options_page) {
chrome.tabs.create({url: manifest.options_page})
let {page} = Manifest.options_ui;
if (page) {
chrome.tabs.create({url: page})
}
}
}

View File

@ -11,6 +11,7 @@
"allowJs": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"sourceMap": true,
"baseUrl": ".",
"types": [

View File

@ -14,20 +14,44 @@ module.exports = {
devtools_panel: "src/devtools/panel/index.ts",
test: "src/test/index.ts",
},
configureWebpack: {
entry: {
content: Path.join(__dirname, "src/content.ts"),
background: Path.join(__dirname, "src/background.ts"),
inject: Path.join(__dirname, "src/inject.js"),
devtools: Path.join(__dirname, "src/devtools/main.ts"),
},
output: {
filename: "js/[name].js?t=[hash]"
},
plugins: [
new ChromeManifest({
manifest: Path.join(__dirname, "src/manifest/index.js")
}),
]
}
pluginOptions: {
browserExtension: {
components: {
background: true,
devtools: true,
contentScripts: true,
},
componentOptions: {
contentScripts: {
entries: {
content: "src/content.ts"
},
},
background: {
entry: "src/background.ts",
},
devtools: {
entry: "src/devtools/main.ts",
}
}
}
},
// configureWebpack: {
// mode: "development",
// devtool: "#source-map",
// entry: {
// content: Path.join(__dirname, "src/content.ts"),
// background: Path.join(__dirname, "src/background.ts"),
// inject: Path.join(__dirname, "src/inject.js"),
// devtools: Path.join(__dirname, "src/devtools/main.ts"),
// },
// output: {
// filename: "js/[name].js?t=[hash]"
// },
// plugins: [
// new ChromeManifest({
// manifest: Path.join(__dirname, "src/manifest/index.js")
// }),
// ]
// }
};