目前,我的nodejs服务器中的所有模块都被导入为require(),即:
let path = require('path');
let express = require('express');
let http = require('http');
let app = express();
然而,我下面的教程显示它们被导入为:
import express from 'express'
import path from 'path'
这会抛出错误:
SyntaxError: Unexpected token import
我的webpack.config.js设置为:
module: {
rules: [
{
test: /\.js?$/,
use: 'babel-loader',
exclude: /node_modules/
}
]
}
在bablerc中:
{
"presets": ["es2015", "react"]
}
我的包版本:
"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"
}
导入可以在我所有的react组件文件中运行,但不能在server.js中运行。如何将我的服务器从require切换到Import?
发布于 2017-03-07 10:21:25
它在webpack的情况下是有效的,因为代码是通过巴别塔运行的。您可以通过babel运行node.js代码。
如果您没有babel cli,请安装它
npm install --save-dev babel-cli
然后像这样运行你的代码:
./node_modules/.bin/babel-node server.js
或者将其放入package.json中。
{
"scripts": {
"start": "babel-node server.js"
}
}
发布于 2018-05-07 06:52:33
默认情况下,您将使用ES5,并且需要使用require
来引入模块。随着ES6的发展,我们最好开始使用ES6类以及import和export语句。为此,我们需要使用Babel来解释我们的ES6语法。
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
.babelrc
文件:{
"presets": ["es2015"]
}
如果您按照上面的步骤操作,这个问题应该会消失。
如需更多信息,请访问:https://codebrains.io/setting-up-express-with-es6-and-babel/。
https://stackoverflow.com/questions/42645548
复制