T. *_*ans 10 reactjs webpack webpack-style-loader
构建服务器端react应用程序,并且在使用Webpack时,Style-Loader出现问题。
我正在使用版本“ ^ 0.23.1”,并且在运行脚本进行捆绑和构建时,Style-Loader出现了问题。
问题是 window is not defined
webpack:///./node_modules/style-loader/lib/addStyles.js?:23
return window && document && document.all && !window.atob;
Run Code Online (Sandbox Code Playgroud)
有没有人遇到这个问题?在查看了有关样式加载程序的Stack和Github问题之后,我没有找到任何解决方案。
这是我的webpack文件:
const path = require('path');
const webpack = require('webpack');
module.exports = {
// webpack to use node
target: 'node',
entry: './src/index.js',
output: {
filename: 'client-build.js',
path: path.resolve(__dirname, 'build/public'),
publicPath: '/build/public'
},
module: {
rules: [
{
test: /\.js$|\.jsx$/,
loader: 'babel-loader',
exclude: '/node_modules/',
options: {
presets: [
'@babel/preset-react'
]
}
},
{
test: /\.(s*)css$/,
loader: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /\.jpeg$|\.gif$|\.png$|\.svg$|\.woff$|\.ttf$|\.wav$|\.mp3$|\.jpg$|\.pdf$/,
loader: 'file-loader',
query: {
name: 'assets/img/[name].[ext]'
},
},
]
},
plugins: [
new webpack.ProvidePlugin({
"React": "react",
}),
],
}
Run Code Online (Sandbox Code Playgroud)
如果还有其他任何需要,我可以张贴。
Rou*_*uby 11
style-loader尝试将样式注入head网站 ( window/ document) 中,在渲染/执行时,您的服务器上将不存在样式。
你需要从你的服务器配置中删除这个加载器并用其他东西替换它(例如ExtractTextPlugin或MiniCSSExtractplugin,取决于你的 webpack 版本)
我认为您的问题是,window在节点服务器上运行js代码时没有对象。这也很有意义,因为您的服务器没有呈现代码的窗口。您可以global改为将该对象用于全局引用,请参见此处的相关文章:node.js是否等效于浏览器中的window对象
| 归档时间: |
|
| 查看次数: |
3102 次 |
| 最近记录: |