在Node.JS中将一个文件导入另一个文件时出错

时间:2019-05-28 18:21:02

标签: node.js ecmascript-6

我正在使用import,同时将我的Practice.js文件中的一些功能导入到different.js文件中。

practice.js file:-

function sum(x,y){
    return x+y;
}

const pi = 3.14;

module.exports = {
    sum : sum,
    pi:pi
};

different.js文件:-

import {sum,pi} from "./practice.js";

console.log("2 pie: "+sum(pi,pi));

现在,当我使用require时,输出正确并且没有错误。 当我使用导入时,出现以下错误:-

SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:749:23)
    at Object.Module._extensions..js 
(internal/modules/cjs/loader.js:816:10)
    at Module.load (internal/modules/cjs/loader.js:672:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:612:12)
    at Function.Module._load (internal/modules/cjs/loader.js:604:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:868:12)
    at internal/main/run_main_module.js:21:11

我问过我的同事,他们告诉我这是关于ES6的,并且Babel没有在您的系统中配置。

但是我不确定如何进行此操作。有人可以帮我怎么做吗?

1 个答案:

答案 0 :(得分:0)

将主文件(different.js)重命名为different.mjs。 将您的Practice.js文件重命名为Practice.mjs,使其看起来像这样:

function sum(x, y) {
    return x + y;
}

const pi = 3.14;

export {sum, pi};

然后运行node --experimental-modules different.mjs以使用其实验性模块加载器运行Node。

您可以阅读更多here