From 5b4c0905773c0b6fc7c41182fe9a8d810ae8b0b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=B3=A2?= Date: Wed, 7 Sep 2022 11:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8esbuild-plugin-browser-sync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esbuild.config.js | 28 ++------------------- package.json | 5 ++-- yarn.lock | 62 +++++++++++++++++++++++++++++------------------ 3 files changed, 42 insertions(+), 53 deletions(-) diff --git a/esbuild.config.js b/esbuild.config.js index f03027f..27c1d2f 100644 --- a/esbuild.config.js +++ b/esbuild.config.js @@ -7,7 +7,7 @@ import postcss from 'postcss' import autoprefixer from 'autoprefixer' import postcssPresetEnv from 'postcss-preset-env' import postcssImport from 'postcss-import' -import browserSync from 'browser-sync' +import esbuildPluginBowserSync from 'esbuild-plugin-browser-sync' import components from './components.js' // 判断当前环境 @@ -15,30 +15,6 @@ const isServe = process.argv.includes('serve') // 包名 const libraryName = 'fa-ui.js' -// 封装esbuild本地服务插件 -function servePlugin (serveOptions = {}) { - // 创建服务实例 - const bs = browserSync.create('dev-server') - - return { - name: 'devServer', - setup (build) { - build.onEnd(() => { - // 避免重复启动服务 - if (!bs.active) { - // 初始化服务 - bs.init({ - port: 3000, - watch: true, - open: true, - ...serveOptions - }) - } - }) - } - } -} - // 打包组件库 async function buildLibrary () { await build({ @@ -136,7 +112,7 @@ function buildExamples () { }), vue(), progress(), - servePlugin({ + esbuildPluginBowserSync({ server: 'examples' }) ] diff --git a/package.json b/package.json index cd84412..d9e94a0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "{{name}}", - "version": "1.0.0", + "version": "{{version}}", "main": "lib/{{name}}.js", "module": "lib/{{name}}.js", "files": [ @@ -23,13 +23,12 @@ "dts:check": "vue-tsc --noEmit" }, "devDependencies": { - "@types/html-minifier": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", "@vue/compiler-sfc": "^3.2.38", "autoprefixer": "^10.4.8", - "browser-sync": "^2.27.10", "esbuild": "^0.15.6", + "esbuild-plugin-browser-sync": "^0.1.1", "esbuild-plugin-filesize": "^0.3.0", "esbuild-plugin-progress": "^1.0.1", "esbuild-plugin-vue": "^0.2.4", diff --git a/yarn.lock b/yarn.lock index 6e82f07..649509e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -233,13 +233,15 @@ resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== -"@types/clean-css@*": - version "4.2.5" - resolved "https://registry.nlark.com/@types/clean-css/download/@types/clean-css-4.2.5.tgz#69ce62cc13557c90ca40460133f672dc52ceaf89" - integrity sha1-ac5izBNVfJDKQEYBM/Zy3FLOr4k= +"@types/browser-sync@^2.26.3": + version "2.26.3" + resolved "https://registry.npmmirror.com/@types/browser-sync/-/browser-sync-2.26.3.tgz#d8a2c316144b55d5cb11328b7cb63dc1778de524" + integrity sha512-HIiI438D8q/DXFhdc2JELRMPtuHmR+0q+QNwP/mQoItHvPi7LK+bkZC7amKrSpnB2t4ct8BRd32LtOfd6TMNIw== dependencies: + "@types/micromatch" "^2" "@types/node" "*" - source-map "^0.6.0" + "@types/serve-static" "*" + chokidar "^3.0.0" "@types/cookie@^0.4.1": version "0.4.1" @@ -251,20 +253,23 @@ resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/html-minifier@^4.0.2": - version "4.0.2" - resolved "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-4.0.2.tgz#ea0b927ad0019821a2e9d14ba9c57d105b63cecc" - integrity sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ== - dependencies: - "@types/clean-css" "*" - "@types/relateurl" "*" - "@types/uglify-js" "*" - "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/micromatch@^2": + version "2.3.31" + resolved "https://registry.npmmirror.com/@types/micromatch/-/micromatch-2.3.31.tgz#d13641cb6965294ed1b1d2ad561a331d6306962b" + integrity sha512-17WSoNz/GKLSfcomM8cMoJJQG2cDKvsoDFTtbwjEMxcizGb0HT6EBRi8qR7NW+XSaVdxHzq/WV/TUOm5f/ksag== + dependencies: + "@types/parse-glob" "*" + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + "@types/node@*": version "15.6.0" resolved "https://registry.npmjs.org/@types/node/-/node-15.6.0.tgz" @@ -275,17 +280,18 @@ resolved "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz#0fe081752a3333392d00586d815485a17c2cf3c9" integrity sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA== -"@types/relateurl@*": - version "0.2.29" - resolved "https://registry.nlark.com/@types/relateurl/download/@types/relateurl-0.2.29.tgz#68ccecec3d4ffdafb9c577fe764f912afc050fe6" - integrity sha1-aMzs7D1P/a+5xXf+dk+RKvwFD+Y= +"@types/parse-glob@*": + version "3.0.29" + resolved "https://registry.npmmirror.com/@types/parse-glob/-/parse-glob-3.0.29.tgz#6a40ec7ebd2418ee69ee397e48e42169268a10bf" + integrity sha512-OFwMPH5eJOhtwR92GMjTNWukaKTdWQC12cBgRvrTQl5CwhruSq6734wi1CTSh5Qjm/pMJWaKOOPKZOp6FpIkXQ== -"@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.nlark.com/@types/uglify-js/download/@types/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" - integrity sha1-XoienoHpQkXHW2RQYA4cXqKHiuo= +"@types/serve-static@*": + version "1.15.0" + resolved "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== dependencies: - source-map "^0.6.1" + "@types/mime" "*" + "@types/node" "*" "@typescript-eslint/eslint-plugin@^5.36.1": version "5.36.1" @@ -890,7 +896,7 @@ chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1394,6 +1400,14 @@ esbuild-openbsd-64@0.15.6: resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.6.tgz#b29e7faed5b8d2aeaf3884c47c1a96b1cba8e263" integrity sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw== +esbuild-plugin-browser-sync@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/esbuild-plugin-browser-sync/-/esbuild-plugin-browser-sync-0.1.1.tgz#2335a136e81630b58c9f49ef07628ffe0d76cdba" + integrity sha512-wHS9AjIOxVyzrz3inaFZLLAtORDrMqEladU3YrIY4e0kBIEYT/Fu1WsLAEXN/05bGPN28AcJw3AfgcMiyp5flg== + dependencies: + "@types/browser-sync" "^2.26.3" + browser-sync "^2.27.10" + esbuild-plugin-filesize@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/esbuild-plugin-filesize/-/esbuild-plugin-filesize-0.3.0.tgz#0cefd2e22d2f07849e31c77508509ec178c00a5c" -- Gitee