Browse Source

refactor: 使用vue-cli改写整个扩展架构

master
Alvis Zhao 4 years ago
parent
commit
31efdf1684
  1. 17
      .eslintrc.json
  2. 3
      extension/.browserslistrc
  3. 5
      extension/.editorconfig
  4. 17
      extension/.eslintrc.js
  5. 23
      extension/.gitignore
  6. 3
      extension/README.md
  7. 5
      extension/babel.config.js
  8. 349
      extension/css/normalize.css
  9. 8
      extension/css/style.css
  10. BIN
      extension/images/get_started128.png
  11. BIN
      extension/images/get_started16.png
  12. BIN
      extension/images/get_started32.png
  13. BIN
      extension/images/get_started48.png
  14. 33
      extension/manifest.json
  15. 13536
      extension/package-lock.json
  16. 44
      extension/package.json
  17. 21
      extension/popup.html
  18. 0
      extension/public/_locales/en_US/messages.json
  19. 0
      extension/public/_locales/zh_CN/messages.json
  20. 10
      extension/public/background.js
  21. BIN
      extension/public/favicon.ico
  22. BIN
      extension/public/images/bookmark128.png
  23. BIN
      extension/public/images/bookmark16.png
  24. BIN
      extension/public/images/bookmark32.png
  25. BIN
      extension/public/images/bookmark48.png
  26. BIN
      extension/public/images/bookmark64.png
  27. 17
      extension/public/index.html
  28. 36
      extension/public/manifest.json
  29. 37
      extension/src/App.vue
  30. BIN
      extension/src/assets/logo.png
  31. 0
      extension/src/background.js
  32. 21
      extension/src/components/vbutton.vue
  33. 67
      extension/src/components/vcol.vue
  34. 17
      extension/src/components/vloading.vue
  35. 22
      extension/src/components/vrow.vue
  36. 10
      extension/src/main.js
  37. 55
      extension/src/pages/options/app.vue
  38. 10
      extension/src/pages/options/main.js
  39. 83
      extension/src/pages/popup/app.vue
  40. 10
      extension/src/pages/popup/main.js
  41. 0
      extension/src/popup.mjs
  42. 11
      extension/src/styles/mixins.less
  43. 21
      extension/vue.config.js
  44. 1473
      package-lock.json
  45. 23
      package.json

17
.eslintrc.json

@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
{
"env": {
"browser": true,
"es2020": true
},
"extends": [
"standard"
],
"parserOptions": {
"ecmaVersion": 11
},
"rules": {
},
"globals": {
"chrome": "readonly"
}
}

3
extension/.browserslistrc

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
> 1%
last 2 versions
not dead

5
extension/.editorconfig

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
[*.{js,jsx,ts,tsx,vue,less}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true

17
extension/.eslintrc.js

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
module.exports = {
root: true,
env: {
node: true
},
extends: [
'plugin:vue/essential',
'@vue/standard'
],
parserOptions: {
parser: 'babel-eslint'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
}
}

23
extension/.gitignore vendored

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

3
extension/README.md

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
# bookmark-sync-extension
浏览器书签同步助手

5
extension/babel.config.js

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}

349
extension/css/normalize.css vendored

@ -1,349 +0,0 @@ @@ -1,349 +0,0 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

8
extension/css/style.css

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
body {
font-size: 12px;
width: 300px;
max-width: 300px;
height: 558px;
max-height: 558px;
overflow: hidden;
}

BIN
extension/images/get_started128.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

BIN
extension/images/get_started16.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

BIN
extension/images/get_started32.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

BIN
extension/images/get_started48.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

33
extension/manifest.json

@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
{
"manifest_version": 2,
"name": "__MSG_name__",
"version": "1.0",
"default_locale": "zh_CN",
"description": "__MSG_description__",
"icons": {
"16": "images/get_started16.png",
"32": "images/get_started32.png",
"48": "images/get_started48.png",
"128": "images/get_started128.png"
},
"browser_action": {
"default_popup": "popup.html",
"default_icon": {
"16": "images/get_started16.png",
"32": "images/get_started32.png",
"48": "images/get_started48.png",
"128": "images/get_started128.png"
}
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"homepage_url": "https://github.com/alvisisme",
"permissions": [
"activeTab",
"bookmarks",
"storage"
],
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'"
}

13536
extension/package-lock.json generated

File diff suppressed because it is too large Load Diff

44
extension/package.json

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
{
"name": "chrome-extension-syncmarks",
"version": "1.0.0",
"description": "A chrome extension to sync bookmarks",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.21.1",
"core-js": "^3.6.5",
"normalize.css": "^8.0.1",
"vue": "^2.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-standard": "^5.1.2",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.0",
"eslint-plugin-vue": "^6.2.2",
"html-webpack-plugin": "^5.3.1",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"lint-staged": "^9.5.0",
"vue-template-compiler": "^2.6.11"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,vue}": [
"vue-cli-service lint",
"git add"
]
}
}

21
extension/popup.html

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Chrome Bookmarks Sync Tools</title>
</head>
<body>
<div>
<span>服务器地址</span>
<input id='server' type="text" value='http://192.168.31.238:3000' placeholder="http://192.168.31.161:3000">
<button id='connect' type="button">连接服务器</button>
<span id='version'></span>
</div>
<button id='overwriteSync' type="button">同步(覆盖模式)</button>
<button id='mergeSync' type="button">同步(合并模式)</button>
<button id='upload' type="button" >备份</button>
<button id='removeAll' type="button" >清空</button>
<script src='./js/popup.js'></script>
</body>
</html>

0
extension/_locales/en_US/messages.json → extension/public/_locales/en_US/messages.json

0
extension/_locales/zh_CN/messages.json → extension/public/_locales/zh_CN/messages.json

10
extension/public/background.js

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
chrome.runtime.onInstalled.addListener(function() {
// 扩展第一次安装时触发
// alert('安装完成')
})
chrome.bookmarks.onCreated.addListener(function() {
// alert('新增书签')
})
// chrome.browserAction.setBadgeText({text: '↑'})
// chrome.browserAction.setBadgeText({text: '↓'})

BIN
extension/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
extension/public/images/bookmark128.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
extension/public/images/bookmark16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

BIN
extension/public/images/bookmark32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

BIN
extension/public/images/bookmark48.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

BIN
extension/public/images/bookmark64.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

17
extension/public/index.html

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

36
extension/public/manifest.json

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
{
"manifest_version": 2,
"name": "__MSG_name__",
"version": "1.0",
"default_locale": "zh_CN",
"description": "__MSG_description__",
"icons": {
"16": "images/bookmark16.png",
"32": "images/bookmark32.png",
"48": "images/bookmark48.png",
"128": "images/bookmark128.png"
},
"browser_action": {
"default_popup": "popup.html",
"default_icon": {
"16": "images/bookmark16.png",
"32": "images/bookmark32.png",
"48": "images/bookmark48.png",
"128": "images/bookmark128.png"
}
},
"background": {
"scripts": [
"background.js"
],
"persistent": false
},
"options_page": "options.html",
"homepage_url": "https://github.com/alvisisme",
"permissions": [
"activeTab",
"bookmarks",
"storage"
],
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'"
}

37
extension/src/App.vue

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
<template>
<div id="app">
<loading class="loading"></loading>
</div>
</template>
<script>
import Loading from '@/components/loading.vue'
export default {
name: 'App',
components: {
Loading
}
}
</script>
<style lang="less" scoped>
.loading {
height: 24px;
}
</style>
<style lang="less">
html,body {
margin: 0;
padding: 0;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
width: 300px;
}
</style>

BIN
extension/src/assets/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

0
extension/background.js → extension/src/background.js

21
extension/src/components/vbutton.vue

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<template>
<button class="v-button">
<slot></slot>
</button>
</template>
<script>
export default {
name: 'VButton',
props: {
msg: String
}
}
</script>
<style lang="less" scoped>
.v-button {
color: red;
padding: 6px 24px;
}
</style>

67
extension/src/components/vcol.vue

@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
<template>
<div class="v-col" :class="classes">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'vCol',
props: {
span: {
type: Number,
default: 24
}
},
data () {
return {
classes: {
}
}
},
computed: {
},
methods: {
},
created () {
this.classes[`v-col-${this.span}`] = true
}
}
</script>
<style lang="less" scoped>
[class*="v-col-"] {
float: left;
box-sizing: border-box;
}
.v-col-0 {
display: none;
}
//
.v-col-loop(@n, @i: 0) when (@i <= @n) {
.v-col-@{i} {
width: (1 / @n * @i * 100) * 1%;
}
.v-col-offset-@{i} {
margin-left: (1 / @n * @i * 100) * 1%;
}
.v-col-pull-@{i} {
position: relative;
right: (1 / @n * @i * 100) * 1%;
}
.v-col-push-@{i} {
position: relative;
left: (1 / @n * @i * 100) * 1%;
}
.v-col-loop(@n, (@i + 1));
}
.v-col-loop(24);
</style>

17
extension/src/components/vloading.vue

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
<template>
<div class="loading-bar">
loading...
</div>
</template>
<script>
export default {
name: 'vLoading'
}
</script>
<style lang="less" scoped>
.loading-bar {
width: 100%;
}
</style>

22
extension/src/components/vrow.vue

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<template>
<div class="v-row">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'VRow'
}
</script>
<style lang="less" scoped>
@import "~@/styles/mixins.less";
.v-row {
position: relative;
box-sizing: border-box;
.utils-clearfix-mixin()
}
</style>

10
extension/src/main.js

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
import Vue from 'vue'
import 'normalize.css'
import App from './app.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App)
}).$mount('#app')

55
extension/src/pages/options/app.vue

@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
<template>
<div id="app">
<v-row>
<h1>配置页面</h1>
</v-row>
<v-row>
配置项
</v-row>
<v-row>
<v-col :span=12>
<v-button>保存</v-button>
</v-col>
<v-col :span=12>
<v-button>取消</v-button>
</v-col>
</v-row>
</div>
</template>
<script>
import vRow from '@/components/vrow.vue'
import vCol from '@/components/vcol.vue'
import vButton from '@/components/vbutton.vue'
export default {
name: 'App',
components: {
vRow,
vCol,
vButton
}
}
</script>
<style lang="less" scoped>
.loading {
height: 24px;
}
</style>
<style lang="less">
html,body {
margin: 0;
padding: 0;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
}
</style>

10
extension/src/pages/options/main.js

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
import Vue from 'vue'
import 'normalize.css'
import App from './app.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App)
}).$mount('#app')

83
extension/src/pages/popup/app.vue

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
<template>
<div id="app">
<v-loading class="loading" v-if="loading"></v-loading>
<v-row>
<v-col :span=12>
最近更新
</v-col>
<v-col :span=12>
{{updateTime}}
</v-col>
</v-row>
<v-row>
<v-col :span=12>
<v-button>上传</v-button>
</v-col>
<v-col :span=12>
<v-button>下载</v-button>
</v-col>
</v-row>
</div>
</template>
<script>
import vLoading from '@/components/vloading.vue'
import vRow from '@/components/vrow.vue'
import vCol from '@/components/vcol.vue'
import vButton from '@/components/vbutton.vue'
export default {
name: 'App',
components: {
vLoading,
vButton,
vRow,
vCol
},
data () {
return {
loading: false,
updateTime: new Date()
}
}
}
</script>
<style lang="less" scoped>
.loading {
height: 24px;
}
.row {
position: relative;
box-sizing: border-box;
}
.col {
position: relative;
box-sizing: border-box;
float: left;
}
.col-12 {
width: 100% * 12 * 1 / 24;
}
</style>
<style lang="less">
html,body {
margin: 0;
padding: 0;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
width: 300px;
}
</style>

10
extension/src/pages/popup/main.js

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
import Vue from 'vue'
import 'normalize.css'
import App from './app.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App)
}).$mount('#app')

0
extension/js/popup.js → extension/src/popup.mjs

11
extension/src/styles/mixins.less

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
.utils-clearfix-mixin() {
&::before,
&::after {
display: table;
content: "";
}
&::after {
clear: both;
}
}

21
extension/vue.config.js

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
publicPath: '',
pages: {
popup: {
entry: 'src/pages/popup/main.js',
template: 'public/index.html',
filename: 'popup.html',
title: '书签同步助手',
chunks: ['chunk-vendors', 'chunk-common', 'popup'] // 'chunk-vendors', 'chunk-common' 是公用资源文件
},
options: {
entry: 'src/pages/options/main.js',
template: 'public/index.html',
filename: 'options.html',
title: '书签同步助手配置页',
chunks: ['chunk-vendors', 'chunk-common', 'options']
}
}
}

1473
package-lock.json generated

File diff suppressed because it is too large Load Diff

23
package.json

@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
{
"name": "chrome-extension-syncmarks",
"version": "1.0.0",
"description": "A chrome extension to sync bookmarks",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/alvisisme/chrome-extension-syncmarks.git"
},
"author": "",
"license": "ISC",
"devDependencies": {
"eslint": "^7.7.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1"
}
}
Loading…
Cancel
Save