irw*_*win 3 webpack vue.js lerna nuxt.js vue-cli
我正在尝试运行一个基本的 Nuxt 应用程序,其中包含使用 lerna monorepo 内的 vue-cli 构建的外部 Vue 组件。
\n\n该页面简要显示组件内容(服务器呈现),然后消失并抛出以下错误。
\n\n"export \'default\' (imported as \'Header\') was not found in \'a2b-header\'
其次是
\n\nMismatching childNodes vs. VNodes: NodeList(7)\xc2\xa0[svg, text, div#app, text, h2.subtitle, text, div.links] (7)\xc2\xa0[VNode, VNode, VNode, VNode, VNode, VNode, VNode]
最后是红色的 Vue 警告
\n\n[Vue warn]: The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing <tbody>. Bailing hydration and performing full client-side render.
我用于外部组件的设置是package.json:
\n\n{\n "name": "a2b-header",\n "version": "0.1.0",\n "private": true,\n "main": "./dist/a2b-header.umd.js",\n "scripts": {\n "serve": "vue-cli-service serve",\n "build": "vue-cli-service build --target lib --name a2b-header src/main.js",\n "lint": "vue-cli-service lint"\n },\n "dependencies": {\n "core-js": "^3.4.3",\n "vue": "^2.6.10"\n },\n ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n我的main.js如下所示:
\n\nimport Header from \'./Header.vue\'\n\nexport default Header\n
Run Code Online (Sandbox Code Playgroud)\n\n组件文件本身Header.vue是:
\n\n<template>\n <div id="app">\n <h1>Welcome to Your Vue.js App</h1>\n </div>\n</template>\n\n<script>\nexport default {\n name: \'Header\'\n}\n</script>\n\n<style>\n#app {\n font-family: \'Avenir\', Helvetica, Arial, sans-serif;\n text-align: center;\n color: #2c3e50;\n margin-top: 60px;\n}\n</style>\n
Run Code Online (Sandbox Code Playgroud)\n\n所有内容都使用简单的方法导入到 Nuxt 项目index.vue中:
\n\nimport Header from \'a2b-header\'\n
Run Code Online (Sandbox Code Playgroud)\n\n而且......它不起作用。我认为 SSR 与客户端的不匹配与错误的导出有关,可能可以通过某些 webpack 配置来解决,但在尝试了许多不同的事情之后,我在这里陷入了困境。
\n\n我希望它能够工作的原因是,在 monorepo 中,我们计划拥有各种 Vue 应用程序(SPA 和 Nuxt),并且将公共代码封装在可跨不同项目重用的组件中的能力至关重要。
\nEdw*_*ova 13
将你的组件包裹起来<ClientOnly> <YourComponent> </ClientOnly>
转到官方 nuxt 文档以获取更多信息:
https://nuxtjs.org/docs/2.x/features/nuxt-components#the-client-only-component
归档时间: |
|
查看次数: |
18852 次 |
最近记录: |