vue.js - 当 extract_css: false 时,文档未在导入到 Nuxt 的 Vue 组件中定义
问题描述
我使用 @vue/cli 构建了一个 Vue 组件,并尝试将其作为依赖项导入 Nuxt 应用程序。该组件是使用构建的--target lib
,它会编译为.umd.js
源代码。
当我使用具有以下设置的vue.config.js时:
module.exports = {
css: { extract: false }
}
组件样式包含在包中,并导致在document is not defined
包文件的以下行中引发错误
...
var styleElement = document.querySelector('style[' + ssrIdKe`
...
如果我将提取值设置为true,则该组件可以正常工作,但显然这需要手动导入捆绑的 CSS 文件(我想避免这种情况)
是否有任何解决方案可以将自定义组件包含在 Nuxt 项目中并捆绑样式?
解决方案
这是由于服务器端渲染。如果您需要指定仅在客户端导入资源,则需要使用process.client变量。
尝试这个:
if (process.client) {
var styleElement = document.querySelector('style[' + ssrIdKe`
}
推荐阅读
- java - OpenJDK 16 和 Glassfish 6.1.0 部署导致 SAXException
- node.js - Node.js "readline" + "fs.createReadStream" : 指定开始和结束行号
- c - 如何将第一个和第二个 ascii 字符作为字符串中的 NULL 字符而不是“”作为空字符串发送?
- javascript - 如何在输入值更改时动态显示数组?
- r - RMarkdown 不会编织!包数组错误:非法 pream-token (e): `c' used
- mysql - 使用 JDBC 连接器在 spark 中读取 MySQL 表的一部分
- netlify - 向 Netlify CMS 集合添加新字段(图像)时出现问题
- pdf - 从 Power BI 仪表板自动创建 PDF
- python - 如何使用 selenium 将 recapcha 密钥输入到服装网站?
- salesforce - Salesforce 在 Cypress runner 中运行时登录后全屏打开