我想预编译我的NodeJs应用程序(具有SSR for React的服务器)进行 生产环境 . 对于开发我在index.js中使用它:
require('ignore-styles');
require('babel-register')({
ignore: /\/(build|node_modules)\//,
presets: ['env', 'react-app']
});
一切都很好,但我读了这篇文章:https://github.com/babel/babel/issues/5851和我'm confused now. Is it good solution or not ? I don' t在开发服务器期间使用任何捆绑器 . 我不喜欢webpack等 . 要构建客户端,我使用create-react-app .
我试图创建捆绑服务器3天,但我已经投降了 .
我 Build 的命令:
npm run build:clean && NODE_ENV=development babel -d ./build --ignore ,node_modules/**,client/public/**,client/theme/**,server/client/**/*.js ./ -s
还有一些babel实验和结果:
.babelrc
{
"presets": [
"env",
"react-app"
]
}
要么
{
"presets": [
"react",
"es2015",
"stage-0"
]
}
构建正常,但运行后节点./build/server/index.js
module.js:557 throw err; ^错误:无法在Function.Module._resolveFilename(module.js:555:15)中找到模块'./style.css'
.babelrc:
{
"presets": [
"env",
"react-app"
],
"env": {
"development": {
"plugins": [
[
"babel-plugin-transform-require-ignore",
{
"extensions": [
".css"
]
}
]
]
}
}
}
Result:
I'v got: PROJECT-PATH/src/node_modules/loaders.css/loaders.css:14
@-webkit-keyframes scale { ^
SyntaxError: Invalid or unexpected token
.babelrc
{
"presets": ["es2015", "stage-2"]
}
Result:
Result:
SyntaxError: client/src/App.js: Unexpected token (18:2)
16 | const App = () => {
17 | return (
> 18 | <Provider store={store}>
| ^
19 | <BrowserRouter>
20 | <AppWrapper/>
21 | </BrowserRouter>
.babelrc
{
"presets": [
"env",
"react"
]
}
Result:
SyntaxError: client/src/components/HamburgerMenu/index.js: Unexpected token (9:12)
7 |
8 | class HamburgerMenu extends Component {
> 9 | renderMenu = (links) => {
| ^
10 | const { onItemClick } = this.props;
11 | return (
12 | links.map((link, index) => {