Skip to content

Commit aba46ea

Browse files
committed
fix(lib): fix naive-ui style injection
1 parent dfa97e8 commit aba46ea

File tree

4 files changed

+67
-30
lines changed

4 files changed

+67
-30
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
},
4949
"dependencies": {
5050
"@dvcol/web-extension-utils": "^2.3.4",
51+
"naive-ui": "^2.34.4",
5152
"pinia": "^2.1.6",
5253
"vue": "^3.3.4",
5354
"vue-router": "^4.2.4"
@@ -95,7 +96,7 @@
9596
"jsdom": "^22.1.0",
9697
"jsonc-eslint-parser": "^2.1.0",
9798
"lint-staged": "^14.0.1",
98-
"naive-ui": "^2.34.4",
99+
"magic-string": "^0.30.3",
99100
"npm-run-all": "^4.1.5",
100101
"prettier": "^3.0.2",
101102
"rimraf": "^5.0.1",

pnpm-lock.yaml

+32-29
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/AppView.vue

+12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script setup lang="ts">
2+
import { NButton, NButtonGroup } from 'naive-ui';
23
import { RouterLink, RouterView } from 'vue-router';
34
45
import HelloWorld from '~/components/HelloWorld.vue';
@@ -20,6 +21,12 @@ const store = useRouterStore();
2021
<RouterLink :to="`${store.baseName}/`">Home</RouterLink>
2122
<RouterLink :to="`${store.baseName}/about`">About</RouterLink>
2223
</nav>
24+
25+
<NButtonGroup class="buttons">
26+
<RouterLink :to="`${store.baseName}/`"><NButton>Home</NButton></RouterLink>
27+
<NButton ghost> One More </NButton>
28+
<RouterLink :to="`${store.baseName}/about`"><NButton>About/NButton></NButton></RouterLink>
29+
</NButtonGroup>
2330
</div>
2431
</header>
2532
<main>
@@ -32,6 +39,11 @@ header {
3239
display: flex;
3340
flex-direction: column;
3441
justify-content: center;
42+
43+
.buttons {
44+
display: flex;
45+
justify-content: center;
46+
}
3547
}
3648
3749
main {

vite.config.ts

+21
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { dirname, relative } from 'path';
22
import { fileURLToPath, URL } from 'url';
33

44
import vue from '@vitejs/plugin-vue';
5+
import MagicString from 'magic-string';
56
import { viteVueCE } from 'unplugin-vue-ce';
67

78
import { defineConfig } from 'vite';
@@ -42,6 +43,24 @@ const getPlugins = (): PluginOption[] => [
4243
}),
4344
viteVueCE(),
4445

46+
// replace document query selector to inject naive-ui within shadow root instead of document head
47+
{
48+
name: 'chunk-transform',
49+
enforce: 'post',
50+
transform: (code, id) => {
51+
if (id.includes('css-render') || id.includes('naive-ui')) {
52+
const getReplacement = (fallback = 'document') => `(document.querySelector('wc-trakt-extension').shadowRoot ?? ${fallback})`;
53+
const _code = new MagicString(code)
54+
.replace(/document\.querySelector/g, `(${getReplacement()}).querySelector`)
55+
.replace(/document\.head/g, `(${getReplacement('document.head')})`);
56+
return {
57+
code: _code.toString(),
58+
map: _code.generateMap({ hires: true }),
59+
};
60+
}
61+
},
62+
},
63+
4564
// rewrite assets to use relative path
4665
{
4766
name: 'assets-rewrite',
@@ -60,6 +79,8 @@ export default defineConfig(() => ({
6079
},
6180
define: {
6281
__DEV__: isDev,
82+
__VUE_OPTIONS_API__: false,
83+
__VUE_PROD_DEVTOOLS__: isDev,
6384
},
6485
plugins: getPlugins(),
6586
base: './',

0 commit comments

Comments
 (0)