首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在NodeJS服务器中使用导入

在NodeJS服务器中使用导入
EN

Stack Overflow用户
提问于 2017-03-07 18:17:11
回答 2查看 29.7K关注 0票数 14

目前,我的nodejs服务器中的所有模块都被导入为require(),即:

代码语言:javascript
运行
复制
let path = require('path');
let express = require('express');
let http = require('http');
let app = express();

然而,我下面的教程显示它们被导入为:

代码语言:javascript
运行
复制
import express from 'express'
import path from 'path'

这会抛出错误:

代码语言:javascript
运行
复制
SyntaxError: Unexpected token import

我的webpack.config.js设置为:

代码语言:javascript
运行
复制
module: {
    rules: [
        {
            test: /\.js?$/,
            use: 'babel-loader',
            exclude: /node_modules/
        }
    ]
}

在bablerc中:

代码语言:javascript
运行
复制
{
  "presets": ["es2015", "react"]
}

我的包版本:

代码语言:javascript
运行
复制
   "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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-07 18:21:25

它在webpack的情况下是有效的,因为代码是通过巴别塔运行的。您可以通过babel运行node.js代码。

如果您没有babel cli,请安装它

代码语言:javascript
运行
复制
npm install --save-dev babel-cli

然后像这样运行你的代码:

代码语言:javascript
运行
复制
./node_modules/.bin/babel-node server.js

或者将其放入package.json中。

代码语言:javascript
运行
复制
{
  "scripts": {
    "start": "babel-node server.js"
  }
}
票数 20
EN

Stack Overflow用户

发布于 2018-05-07 14:52:33

默认情况下,您将使用ES5,并且需要使用require来引入模块。随着ES6的发展,我们最好开始使用ES6类以及import和export语句。为此,我们需要使用Babel来解释我们的ES6语法。

  1. npm install --save-dev babel-cli
  2. npm install --save-dev babel-preset-es2015
  3. Let's拉入babel-cli和babel预设es2015作为开发依赖项,并添加.babelrc文件:

代码语言:javascript
运行
复制
{
  "presets": ["es2015"]
}

如果您按照上面的步骤操作,这个问题应该会消失。

如需更多信息,请访问:https://codebrains.io/setting-up-express-with-es6-and-babel/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42645548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档