Kan*_*naj 6 javascript reactjs webpack babeljs
这与在Isomorphic React Components中导入CSS文件非常相似
但建议的解决方案提出了一个条件语句,用于检查导入是从服务器还是浏览器完成的.问题是我在组件本身使用导入对象,如下所示
<a href="/auth/github" className={style.link}>Sign up with github </a>
Run Code Online (Sandbox Code Playgroud)
但是style未定义,因为我不在服务器上导入它.建议的另一种方法webpack-isomorphic-tools也要求我捆绑服务器端代码.这种方法也迫使你在服务器端使用webpack,我并不热衷于此.
基本上这是我的组件
import React from 'react';
import SignUp from './SignUp'
import {Link} from 'react-router'
import {connect} from 'react-redux';
import Modal from 'react-modal'
import style from './app.css'
class App extends React.Component{
componentDidMount(){
console.log('mounted')
}
render(){
return (
<div>
<p> Hello Kj</p>
<a href="/auth/github" className={style.link}>Sign up with github </a>
<a href="/logout" className={style.logout}> Logout </a>
<Link to ='/project'>Project</Link>
<button onClick={this.openModal}> Login </button>
<h1> {this.props.username} </h1>
<h2> {this.props.email} </h2>
<div> {this.props.children} </div>
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
从服务器端渲染会引发错误
[Error] SyntaxError: /home/avernus/Desktop/projects/node-sc-react/client/app.css: Unexpected token (1:0)
> 1 | .link{
| ^
2 | text-decoration: none;
3 | border: 1px solid black;
4 | background-color: blue;
at Parser.pp.raise (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/location.js:22:13)
at Parser.pp.unexpected (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/util.js:89:8)
at Parser.pp.parseExprAtom (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/expression.js:522:12)
at Parser.parseExprAtom (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/plugins/jsx/index.js:18:22)
at Parser.pp.parseExprSubscripts (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/expression.js:277:19)
at Parser.pp.parseMaybeUnary (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/expression.js:257:19)
at Parser.pp.parseExprOps (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/expression.js:188:19)
at Parser.pp.parseMaybeConditional (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/expression.js:165:19)
at Parser.pp.parseMaybeAssign (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/parser/expression.js:128:19)
at Parser.parseMaybeAssign (/home/avernus/Desktop/projects/node-sc-react/node_modules/babylon/lib/plugins/flow.js:460:20)
Run Code Online (Sandbox Code Playgroud)
无论如何我可以在不使用webpack的情况下处理这个问题吗?
我实际上找到了一种使用https://github.com/michalkvasnicak/babel-plugin-css-modules-transform的方法
在我使用的 package.json 文件中
"start": "nodemon server/server.js --exec babel-node --plugins css-modules-transform"
Run Code Online (Sandbox Code Playgroud)
目前有效
| 归档时间: |
|
| 查看次数: |
1611 次 |
| 最近记录: |