【发布时间】:2019-05-28 13:02:42
【问题描述】:
我正在使用 webpack react express 和 ssr(服务器端渲染)构建一个骨架(为我自己或任何想要它的人)。
我遇到了无法在 react 组件中导入 scss 的问题。
出于某种原因,我可以将它们导入到我做ReactDOM.hydrate的文件中
我尝试了数百种不同的 webpack 配置,还尝试生成单个 css 文件,但我也无法做到。
scss 配置
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader']
}
package.json 依赖:
"@babel/core": "^7.2.2",
"@babel/plugin-proposal-class-properties": "^7.2.3",
"@babel/preset-env": "^7.2.3",
"@babel/preset-react": "^7.0.0",
"autoprefixer": "^9.4.3",
"babel-loader": "^8.0.4",
"clean-webpack-plugin": "^1.0.0",
"css-loader": "^2.1.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"html-webpack-plugin": "^3.2.0",
"isomorphic-style-loader": "^4.0.0",
"mini-css-extract-plugin": "^0.5.0",
"node-sass": "^4.11.0",
"nodemon": "^1.18.9",
"postcss-loader": "^3.0.0",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
"url-loader": "^1.1.2",
"webpack": "^4.28.2",
"webpack-cli": "^3.1.2",
"webpack-node-externals": "^1.7.2"
"axios": "^0.18.0",
"express": "^4.16.4",
"react": "^16.7.0",
"react-dom": "^16.7.0"
我需要 scss 的简单水合物文件:
require('./index.scss');
const React = require('react');
const ReactDOM = require('react-dom');
const Search = require('./Search');
ReactDOM.hydrate(<Search text={window.__INITIAL__.text} />,
document.getElementById('root'));
传递给 hydra 的相同组件我无法添加 require 导致 webpack 编译中断。
const React = require('react')
const Nav = require('../../components/nav/Nav.js')
class Search extends React.Component {
constructor(props) {
super(props);
this.state = {
text: props.text || null,
}
}
render() {
return (
<div id="main">
<Nav />
<p>{this.state.text}</p>
</div>
);
}
}
module.exports = Search;
我正在尝试让require or import 在每个组件中工作,但到目前为止还不能。
【问题讨论】:
标签: node.js reactjs express webpack sass