使用import而不是require在ES6中添加模块

时间:2016-09-15 17:02:14

标签: javascript ecmascript-6

您好我正在尝试将模块添加到我的代码中。在ES5中,我使用了

var promise = require('bluebird');

所以我尝试了import { promise } from 'bluebird',但它不知道为什么?

3 个答案:

答案 0 :(得分:5)

通常使用import代替require我们应该使用一些外部模块,因为Node.js还不支持ES6的导入。

为此,我们首先必须安装这些模块babel-preset-es2015babel-cli

npm install --save-dev babel-preset-es2015 babel-cli

然后我们创建一个名为.babelrc的点文件,我们在其中添加此对象:

{
    "presets": ["es2015"]
}

现在,我们可以使用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'); }); 。{/ p>

./node_modules/.bin/babel-node app.js --presets es2015

最后在我们的shell中,我们必须运行这个命令:

if (navigator.share) {
    navigator.share({
    title: 'Web Fundamentals',
    text: 'Check out Web Fundamentals — it rocks!',
    url: 'https://developers.google.com/web',
})
    .then(() => console.log('Successful share'))
    .catch((error) => console.log('Error sharing', error));
}

答案 1 :(得分:3)

实际上import { promise } from 'bluebird'在es5中翻译为var promise = require('bluebird').promise。因此,es6中var promise = require('bluebird')的等效值为import * as promise from 'bluebird'

编辑:根据@Bergi的评论:import Promise from 'bluebird'是一个更简化的版本。

答案 2 :(得分:1)

Greeter.js中(将其放入Scripts文件夹):

export class Greeter() {
    constructor() {

    }

    getGreeting() {
        alert('Hello from the greeter class');
    }
}

称之为:

<script>
    import {Greeter} from "/Scripts/Greeter.js";

    let greeter = new Greeter();
    greeter.getGreeting();
</script>