首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >babel-node vs node:具有导入/导出功能的graphql文件

babel-node vs node:具有导入/导出功能的graphql文件
EN

Stack Overflow用户
提问于 2017-11-18 07:15:42
回答 1查看 684关注 0票数 1

似乎NodeJS不理解graphql文件(扩展名.gql)中的导入/导出命令,但babel-node理解。我能想到的唯一修复方法是将.gql文件重命名为.js文件,但我失去了语法突出显示。

有没有一个简单的修复方法可以让node在非js扩展名的文件中支持import/exports?附加的是我的package.json;npm run dev可以工作,但npm run build; npm run start不能:

代码语言:javascript
复制
{
"name": "MyAPI",
"version": "1.0.0",
"description": "MyAPI using GraphQL",
"main": "api/server.js",
"scripts": {
    "build": "babel api -d src --copy-files",
    "start": "node src/server.js",
    "debug": "babel-node --inspect api/server.js",
    "dev": "nodemon api/server.js --watch api --watch tests --ext js,gql --exec babel-node",
    "lint": "eslint api,tests",
    "test": "mocha --require babel-core/register tests"
},
"author": "JML",
"devDependencies": {
    "apollo-client": "^2.0.2",
    "apollo-client-preset": "^1.0.2",
    "babel-eslint": "^7.2.1",
    "babel-plugin-syntax-object-rest-spread": "^6.13.0",
    "babel-plugin-transform-async-generator-functions": "^6.24.1",
    "babel-plugin-transform-object-rest-spread": "^6.23.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.6.0",
    "babel-preset-stage-3": "^6.24.1",
    "chai": "^4.1.2",
    "chai-subset": "^1.6.0",
    "eslint": "^4.3.0",
    "eslint-plugin-babel": "^4.1.2",
    "graphql": "^0.10.5",
    "mocha": "^4.0.1",
    "node-fetch": "^1.7.3",
    "nodemon": "^1.11.0",
    "randexp": "^0.4.6"
},
"dependencies": {
    "babel-cli": "^6.24.0",
    "babel-core": "^6.25.0",
    "babel-preset-latest": "^6.24.1",
    "babel-runtime": "^6.26.0",
    "body-parser": "^1.17.1",
    "casual": "^1.5.14",
    "cors": "^2.8.4",
    "eslint": "^4.10.0",
    "express": "^4.15.2",
    "graphql-server-express": "1.0.4",
    "graphql-tag": "^2.5.0",
    "graphql-tools": "^1.1.0",
    "lodash": "^4.17.4",
    "mysql": "^2.14.1",
    "nano": "^6.4.2",
    "treeize": "^2.1.2"
}

}

EN

回答 1

Stack Overflow用户

发布于 2019-08-27 08:19:29

代码语言:javascript
复制
npm install babel-cli babel-preset-env

一旦你安装了它们,它将在根级别创建填充的.babelrc文件。您不需要修改。然后,您需要将这些配置加载到package.json中的启动脚本。

代码语言:javascript
复制
"start": "nodemon src/index.js --ext js,graphql --exec babel-node  ",

如果您不了解nodemon,则需要全局安装它,它将监视src/index.js文件。

--ext js, graphql //可选。它将使用vscode对代码进行着色。

最后,您需要配置babel以支持对象扩散操作符。

代码语言:javascript
复制
npm install babel-plugin-transform-object-rest-spread

然后将这个"transform-object-rest-spread“添加到.babelrc文件中的插件数组中。

.babelrc

代码语言:javascript
复制
{
  "presets": ["env", "react", "stage-0"],
  "plugins": [
    "transform-class-properties",
    "transform-decorators",
    "transform-react-constant-elements",
    "transform-react-inline-elements",
    "transform-object-rest-spread"
  ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47360655

复制
相关文章

相似问题

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