vite.confg
import vue from '@vitejs/plugin-vue';
import jsx from '@vitejs/plugin-vue-jsx';
import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
export default defineConfig({
clearScreen: false,
plugins: [
vue(),
jsx(),
dts({
entryRoot: './src',
outputDir: 'types',
staticImport: true,
cleanVueFileName: true,
exclude: ['**/env.d.ts', '**/client.d.ts']
})
],
build: {
lib: {
entry: './src/main.ts',
name: 'Owl',
fileName: (format) => `owl.${format}.js`
},
rollupOptions: {
external: ['vue'],
output: {
globals: {
vue: 'Vue'
}
}
}
},
test: {
environment: 'happy-dom'
}
});
组件中的样式
源码:
<template>
<div v-show="display__" v-if="refresh__" :id="id__" :class="block" :style="{ ...theme__?.vars }">
<button>dddd</button>
</div>
</template>
<script lang="tsx">
... 省略
</script>
<style lang="scss" scoped>
@import './style.scss';
</style>
样式文件
源码
.o-button{
transform: rotate(20deg);
width: rem(16px);
color: var(--o-button-color,var(--color));
}
打包后的样式 被抽离到单独css文件中,这个没有问题
打包后的js 中为啥还有样式呢
源码
var oButton_vue_vue_type_style_index_0_scoped_true_lang =
(() => ".o-button[data-v-580eca2c]{-webkit-transform:rotate(20deg);transform:rotate(20deg);width:1rem;color:var(--o-button-color, var(--color))}\n")();