Emr*_*oin 0 javascript import node.js ecmascript-6
我正在尝试将 ES6 imorts 与 babel 和 Node.js 一起使用
import "./utils.js";
log("something"); //throw an error : log is not defined
Run Code Online (Sandbox Code Playgroud)
我的utils.js样子是这样的:
function log(... params){
    console.log(... params);
}
log("module utils executed");
//Is executed and display "module utils executed" in the console.
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用export function log(... params)andexport default log(... params)但它不起作用。
所以我不明白这是如何运作的......
编辑:
我知道另一种导入方式是import utils from "./utils.js"
但这不是我想要的。我希望能够使用log()而不用模块变量名作为前缀。就像这篇博文一样
有不同的 ES6import和 Node.jsrequire 问题 描述差异
如果您将使用 Node.js require:
你的utils.js文件将是
function log(params) {
    console.log(params);
}
module.exports = {
   log
};
Run Code Online (Sandbox Code Playgroud)
另一个文件将导入您的 Utils 模块
var utils = require('./utils');
utils.log("test");
Run Code Online (Sandbox Code Playgroud)
如果您将使用 ES6 模块:
你的utils.js文件将是
var log = function (params) {
    console.log(params);
}
var utils = {
    log: log
}
export default utils;
Run Code Online (Sandbox Code Playgroud)
另一个文件将导入您的 Utils 模块
import utils from 'utils';
utils.log("test");
Run Code Online (Sandbox Code Playgroud)
更新
根据您的评论,是的,您可以做到这一点,但是使用 ES6 模块
你的utils.js文件将是
function log(params) {
    console.log(params);
}
function anotherLog(params) {
    console.log(params);
}
export { log, anotherLog }
Run Code Online (Sandbox Code Playgroud)
另一个文件将导入您的 Utils 模块
import { log } from 'utils';
log("test");
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4859 次  |  
        
|   最近记录:  |