javascript - 样式加载器在 React SSR 中失败
问题描述
创建了可重用的反应库,目前它只在客户端工作。如果我尝试在服务器端运行,它会因为style-loader
. 基本上我想将 css 和 js 捆绑到单个文件(UMD)中。这样消费者就方便了。那可能吗?我考虑了 styled-component 和情感 js,但不确定它是否会在主应用程序中创建任何其他依赖项。寻找更好的选择来捆绑它。
ReferenceError: window is not defined
at t (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:1925)
at B (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:2013)
at A.exports (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:5558)
at Object.<anonymous> (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:990)
at s (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:62)
at Module.<anonymous> (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:14364)
at s (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:62)
at /Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:861
at Object.<anonymous> (/Users/srisukum/Documents/dev/react-library/react-reusable-lib/build/index.js:1:870)
at Module._compile (internal/modules/cjs/loader.js:776:30)
Webpack.config.js
output: {
path: path.resolve(__dirname, 'build'),
filename: "index.js",
libraryTarget: 'commonjs2'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components|build|dist)/,
use: {
loader: "babel-loader"
}
},
{
test: /\.css$/,
use: [
"style-loader",
{
loader: "css-loader",
options: {
modules: true
}
}
]
},
{
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader: 'url-loader?limit=100000'
}
]
},
optimization: {
minimizer: [
new UglifyJsPlugin({
cache: false,
parallel: true,
uglifyOptions: {
compress: true,
ecma: 6,
mangle: true
}
})
]
},
externals: {
'react': 'commonjs react'
}
解决方案
您应该在 SSR 中使用isomorphic-style-loader 。
推荐阅读
- sql - 从 SQL Server 中的空返回多行?
- sql - SQL Server 为电子邮件构建动态“收件人”字符串
- ios - 使用 fastlane 匹配时,配置文件“match x”不包括签名证书“Apple Distribution: Company (ID)”
- laravel - 使用 Vapor 时如何引用 .vue 文件中的资产?
- r - 在具有 6 个解释变量的 logit 模型中获取变量(与另一个变量交互)的边际效应
- c - printf 文档中“签名的`size_t`”是什么意思?
- javascript - 如果只包含 0~9、a~z、A~Z 和表情符号,我该如何测试字符串?
- python - Twitch 聊天记录器在 python3.7 中因 websocket 错误而崩溃
- angular - “_”在Angular中的目录之前是什么意思
- python - 如何在条形图的末尾显示国旗(Python+Matplolib)?