Node.js ES6 导出/导入与索引.js



我有以下文件夹结构

src/
index.js
lib/
test.js
dist/
examples/
example.js

src/lib/test.js

export default class Test {}..

src/index.js

import App from './lib/test.js'
export default App

示例/示例.js

import {App} from './../..'
=> App is undefined

如何将我的索引.js设置为入口点并将我的应用导出到入口点?

编辑: 我正在使用 babel 节点作为转译器并启动它

nodemon test.js --exec babel-node --presets es2015,stage-2 --watch ./../..

Node本身不支持importexport

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

节点的方式是使用module.exportsrequire()

有关详细信息,请参阅此处:

是否可以
  • 将 Babel npm 包用于节点.js服务器应用程序
  • javascript - 为什么有同步和异步模块的规范?
  • 从 Node.js 中的模块导出函数的语法是什么?

更新

这里:

export {default as App} from './src/lib/test.js'

您不是从"导出 - 而是从中导入。

也许你的意思是:

import App from './src/lib/test.js';

然后你可以依次导出它。

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

src/lib/test.js

class Test {
// ...
}
module.exports = { Test };

src/index.js

const { Test: App } = require('./lib/test.js');

示例/示例.js

const { App } = require('../src');

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

我只是将 src/index.js 作为 main 放在 package.json 中,然后只运行 nodemon,而无需监视参数。

默认情况下,nodemon 监视当前工作目录。如果要控制该选项,请使用 --watch 选项添加特定路径

路径也是这样的:

src/lib/test.js

export default class Test {}

src/index.js

export {default as App} from './lib/test.js'

示例/示例.js

import {App} from '../'

最新更新