node.js es6 导出/导入 index.js

use*_*567 5 node.js ecmascript-6

我有以下文件夹结构

src/
  index.js
  lib/
    test.js
dist/
examples/
  example.js
Run Code Online (Sandbox Code Playgroud)

源代码/库/test.js

export default class Test {}..
Run Code Online (Sandbox Code Playgroud)

源代码/索引.js

import App from './lib/test.js'
export default App
Run Code Online (Sandbox Code Playgroud)

例子/example.js

import {App} from './../..'

=> App is undefined
Run Code Online (Sandbox Code Playgroud)

如何将我的 index.js 设置为入口点并将我的应用程序导出到那里?

编辑:我使用 babel-node 作为转译器并以

nodemon test.js --exec babel-node --presets es2015,stage-2 --watch ./../..
Run Code Online (Sandbox Code Playgroud)

rsp*_*rsp 3

Node 本身不支持and importexport

如果你想使用该语法,你需要使用像 Babel 这样的转译器。

Node 方式是使用module.exportsrequire()

请参阅此了解更多信息:

更新

这里:

export {default as App} from './src/lib/test.js'
Run Code Online (Sandbox Code Playgroud)

您不是“从”导出 - 您是从“导入”。

也许你的意思是:

import App from './src/lib/test.js';
Run Code Online (Sandbox Code Playgroud)

然后你可以依次导出它。

使用正常的 Node 语法,它将是:

src/lib/test.js

class Test {
  // ...
}
module.exports = { Test };
Run Code Online (Sandbox Code Playgroud)

src/index.js

const { Test: App } = require('./lib/test.js');
Run Code Online (Sandbox Code Playgroud)

示例/example.js

const { App } = require('../src');
Run Code Online (Sandbox Code Playgroud)

另请注意,根据您的目录结构,您的路径不正确:它应该./lib/test.js代替./src/lib/test.js../src代替./../..