如何设置Babel 6与节点JS在我的服务器端代码中使用ES6?
我已经阅读了多次提供的文档: Node API Babel 6 Docs
我开始学习pg-promise,遵循“按示例学习”教程,并且倾向于使用ES6和通过Babel转储到ES5,但是我不确定一些事情:
- 在安装babel-core之后,我将使用什么预设以及在哪里/如何configuration此function?
我不清楚我把哪个文件放在文档里: require(“babel-core”)。transform(“code”,options); 进入和代码的哪些部分是占位符。 当我使用这个代码时,我是否只是在某处使用它,然后我可以在其他文件中使用ES6? 这将如何实现?
-
我读了这个.babelrc文件,并想确认如果实际的文件名是“.babelrc”,或者如果这只是文件的扩展名,并在哪里与我的项目的根目录,我把该文件..以及如何做我链接到它?
-
如果我使用pg-promise ,我应该使用ES6和Babel,或者运行:npm install,如pg-promise的Testing部分中所述,是否足够,并尝试使用ES6来创build更多的问题?
如果需要在我的服务器端开发期间出现,我希望利用let和const。
- 是否有节点+ babel + pg-promise服务器设置的标准文件结构?
编辑值得注意的是,我也阅读了巴巴节点的JS节点 ,看到使用这个应该避免。 最后的答案在底部对我来说没有意义,因为我遇到了类似的问题,因为我根据Babel提供的实际文档而遇到麻烦。
1.a需要什么预设?
您将需要首先使用命令提示符等terminal窗口,在项目的根目录下使用npm install babel-core --save-dev
安装Babel。
安装完成后,您需要使用npm install babel-preset-es2015 --save-dev
安装es2015预设 。 Babel-Core是Promises / A + Compliant, 但由于error handling不好而不太理想 ,所以应该使用像Bluebird这样的库来代替。 为了传输,babel-core仍然需要安装,es2015使ES6-> ES5转码,所以你可以使用像let和const等花哨的东西。
1.b在哪里require("babel-core");
?
而是使用require("babel-core/register");
并将其放置在通常称为“server.js”的 Entry文件中。 server.js文件需要专门使用CommonJS(ES5)。
通过使用“require”语句,它将把所有相关的转换应用到Entry文件所需的所有代码中,并且所有文件被要求/包含到这些文件中。
您指向package.json中的"main":
部分下的Entry文件。
当您在terminal窗口内的项目根目录下用
npm init
初始化项目时,会创buildPackage.json
一个办法是:
- 入口文件 – server.js
- server.js – 需要{babel-core和主ES6文件:config.js / jsx / es6 / es}
- config.es6 – 使用ES6,并包含(需要)所有其他项目文件,也可以使用ES6,因为它们被加载到由babel-core直接转换的“config”文件中。
2.什么是.babelrc?
.babelrc
是文件名,应该放在与你的package.json文件(通常是根目录)相同的文件夹中,当需要使用babel-core来确定要使用哪个预置或插件时,它将自动“加载” 。
在.babelrc
里面,你需要添加下面的代码:
{ "presets": ["es2015"] }
3. pg-promisetesting部分
来自开发者的直接引用最近回答了这个问题
您无需担心testing中的步骤,只使用安装中的步骤。 testing中的一个涉及到dev依赖项安装,以便运行testing。 pg-promise可以与符合Promises / A +规范的任何承诺库一起工作。
4.服务器端项目的标准文件/文件夹结构?
由于每个项目都有独特的需求,没有标准的方法来完成这项任务。 一个好的起点是将Entry文件放置在项目根目录下, ES6 Config文件放置在“scripts”或“src”子文件夹中,以及位于其下的文件夹中的各个组件。
例如
- ROOT / server.js
- ROOT / src目录/ config.es6
- ROOT / src目录/ COMPONENT1 / files.es6
- ROOT / src目录/ COMPONENT2 / files.es6
有了这个,Babel将成功将所有ES6转换成ES5,并支持符合A +标准的承诺。
开始使用node.js webserver 本指南提供了更多的信息,在这个答案的上下文中,所显示的代码将被放置到ES6 config.es6文件中,以下代码将进入Entry server.js文件:
require("babel-core/register"); require("./src/config.es6");
构build同构Web应用程序的过程与此不同,可能会使用grunt,gulp,webpack,babel-loader等其他示例。
这个答案是由这个问题的其他答案提供的几个关键点的组合,以及经验丰富的开发人员的贡献和我自己的个人研究和testing。 感谢所有协助制作这个答案的人。
-
这个答案使用这个简单的目录结构
project/server/src/index.js
=>你的服务器文件project/server/dist/
=>巴贝尔将把你的转录文件 -
安装babel依赖项
npm install -g babel nodemon
npm install --save-dev babel-core babel-preset-es2015
-
将这些npm脚本添加到你的package.json文件中
"scripts": { "compile": "babel server/src --out-dir server/dist", "server": "nodemon server/dist/index.js }
-
在项目根目录下创build一个.babelrc文件
{ "presets": "es2015" }
-
用你的目录传输你的目录
npm run compile
-
运行你的服务器
npm run server
我想你应该使用一个像grunt或gulp一样的工具来pipe理所有的“构build”任务。 它会自动为你,而不会犯错误。
在一个命令中,您可以将您的代码转换为babel ES2015,然后启动您的应用程序。
我build议你看看这个简单的项目 。 (只需安装node_modules并启动npm start来启动app.js文件)
但是,如果你真的想手动使用babel,
-
.babelrc是文件的名字,你可以在这个项目中看到一个(redux)来举个例子
-
.babelrc是一个configuration文件,如果你想看看它是如何工作的,你可以检查这个package.json(总是REDX)
-
我实际上没有任何标准的方法。 如果需要,您可以使用下面的项目框架,并发送拉取请求以改进它:-)