我正在创建一个我想在多个域之间共享的自定义组件库。
域:
my-component-lib
中注册了package.json
每个域都将lib注册为插件
//my-component-lib.js
import components from 'my-component-lib'
import Vue from 'vue'
export default ({ store }) => {
Vue.use(components, { store: store })
}
//nuxt.config.js
plugins: [
/*Desired option 1*/ '@/plugins/my-component-lib',
/*Currently using*/ { src: '@/plugins/my-component-lib', ssr: false }
]
my-component-lib:
使用vue-cli 3进行设置
该库由基本html标记和CSS <input ></input>
组成。样式很重要,我希望将其与组件(extract:false)
保持在一起,以便我可以拉出各个组件,而不必担心导入css文件。
//vue.config.js
module.exports = {
outputDir: 'dist',
lintOnSave: false,
css: {
extract: false
}
}
使用"production": "vue-cli-service build --target lib --name sc components/index.js"
问题:
npm run dev
时,我在document is not defined
内的函数addStyle (obj /* StyleObjectPart */) {..}
中得到了sc.common.js
(The client-side rendered virtual DOM tree is not matching server-rendered content.)
,如果我将组件包装在我不想做的<no-ssr>
标签中,该错误将得到解决。 我想编译我的组件库以使用SSR,而不必导入大的CSS文件
答案 0 :(得分:3)
更改
...
css: {
extract: false
}
...
到true