Muh*_*min 5 javascript ecmascript-6
嗨,我正在尝试向我的代码添加一个模块。在ES5中,我使用了
var promise = require('bluebird');
Run Code Online (Sandbox Code Playgroud)
所以我尝试了一下,import { promise } from 'bluebird'但是为什么没有任何想法?
实际上import { promise } from 'bluebird'在 es5 中翻译为var promise = require('bluebird').promise. 所以相当于var promise = require('bluebird')在 es6 中import * as promise from 'bluebird'
编辑:基于@Bergi 的评论:import Promise from 'bluebird'是一个更简化的版本。
小智 7
通常使用import而不是require我们应该使用一些外部模块,因为Node.js尚不支持ES6的导入。
为此,我们首先必须安装这些模块babel-preset-es2015和babel-cli。
npm install --save-dev babel-preset-es2015 babel-cli
Run Code Online (Sandbox Code Playgroud)
然后我们创建一个点文件.babelrc,在其中添加该对象:
{
"presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用import而不是require。例如,我们可以尝试使用server.js这种代码express来解决问题,import而不是使用require:
import express from 'express'; //instead of const express = require('express');
const app = express();
app.get('/',function (req, res){
res.send('hello from import');
});
app.listen(4444, function(){
console.log('server running on port 4444');
});
Run Code Online (Sandbox Code Playgroud)
最后,在我们的shell中,我们将必须运行以下命令:
./node_modules/.bin/babel-node app.js --presets es2015
Run Code Online (Sandbox Code Playgroud)