目前我的nodejs服务器中的所有模块都是作为require()导入的,即:
let path = require('path');
let express = require('express');
let http = require('http');
let app = express();
Run Code Online (Sandbox Code Playgroud)
但是,我关注的教程显示它们导入为:
import express from 'express'
import path from 'path'
Run Code Online (Sandbox Code Playgroud)
哪个引发错误:
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
我的webpack.config.js设置为:
module: {
rules: [
{
test: /\.js?$/,
use: 'babel-loader',
exclude: /node_modules/
}
]
}
Run Code Online (Sandbox Code Playgroud)
在bablerc中:
{
"presets": ["es2015", "react"]
}
Run Code Online (Sandbox Code Playgroud)
我的包版本:
"babel-core": "^6.7.6",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"react": "^15.0.1",
"devDependencies": {
"babel-cli": "^6.18.0",
"babel-preset-env": "0.0.3",
"webpack": "^2.2.1",
"webpack-dev-middleware": "^1.10.1",
"webpack-dev-server": "^2.4.1",
"webpack-hot-middleware": "^2.17.1"
}
Run Code Online (Sandbox Code Playgroud)
导入适用于我的所有反应组件文件,而不是server.js.如何将服务器切换到从require导入?
Bri*_*and 14
它适用于webpack情况,因为代码是通过babel运行的.您可以通过babel运行node.js代码.
如果你没有它,请安装babel cli
npm install --save-dev babel-cli
Run Code Online (Sandbox Code Playgroud)
然后像这样运行你的代码:
./node_modules/.bin/babel-node server.js
Run Code Online (Sandbox Code Playgroud)
或者把它放在package.json中.
{
"scripts": {
"start": "babel-node server.js"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
默认情况下,您将使用 ES5,并且需要使用它require来拉入模块。随着我们使用 ES6 及更高版本,最好开始使用 ES6 类以及 import 和 export 语句。为此,我们需要 Babel 来解释我们的 ES6 语法。
npm install --save-dev babel-clinpm install --save-dev babel-preset-es2015.babelrc文件:{
"presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)
如果您按照上述步骤操作,问题应该消失了
更多信息请参见:https : //codebrains.io/setting-up-express-with-es6-and-babel/
| 归档时间: |
|
| 查看次数: |
20615 次 |
| 最近记录: |