Vue-cli 3 组件库支持 SSR
2019-12-13
1023
我正在创建一个自定义组件库,我想在多个域之间共享它。
域 :
- 每个域都有自己的 nuxt 实例
-
每个域都在
package.json
中注册了my-component-lib
-
每个域都将该库注册为插件
//my-component-lib.js 从“my-component-lib”导入组件 从“vue”导入 Vue export default ({ store }) =>; { Vue.use(components, { store: store }) } //nuxt.config.js plugins: [ /*所需选项 1*/ '@/plugins/my-component-lib', /*当前使用*/ { 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" 进行生产设置
问题:
-
使用所需选项,当我运行 nuxt
npm run dev
时,我在函数addStyle (obj /* StyleObjectPart */) {..
内得到document is not defined
sc.common.js
-
使用当前选项,我收到一个水化错误
(客户端渲染的虚拟 DOM 树与服务器渲染的内容不匹配。)
,如果我将组件包装在<no-ssr>
标签中,这个问题就会得到解决,但我不想这样做。
我想编译我的组件库以与 SSR 一起使用,而不必导入大型 css 文件
1个回答
将
...
css: {
extract: false
}
...
更改为
true
Jujubes
2020-02-14