【问题标题】:node.js es6 export / import with index.jsnode.js es6 使用 index.js 导出/导入
【发布时间】:2017-12-23 19:09:33
【问题描述】:

我有以下文件夹结构

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

例子/example.js

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

=> App is undefined

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

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

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

【问题讨论】:

  • 不应该是from '../src'而不是from './../..'吗?
  • 您已经向我们展示了export class Test,但不是默认导出。我认为export {default as App} 无论如何都不会这样做......?
  • 您正在导出默认值,但正在导入命名的导出应用程序 - 不存在。
  • @estus 谢谢,现在它不再是未定义的了!

标签: node.js ecmascript-6


【解决方案1】:

Node 本身不支持importexport

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

Node方式是使用module.exportsrequire()

查看更多信息:

更新

这里:

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

您不是在“从”导出 - 您是从其中导入的。

也许你的意思是:

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

然后你可以依次导出。

使用普通的 Node 语法会是:

src/lib/test.js

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

src/index.js

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

例子/example.js

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

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

【讨论】:

  • 但是OP会得到一个语法错误,而不是undefined,不是吗?
  • 我使用 babel-node 作为转译器以“nodemon test.js --exec babel-node --presets es2015,stage-2 --watch ./../.. "
  • @coffeecup 如果您首先在问题中包含相关信息,那么回答您的问题会容易得多。
  • 我在 test.js 文件中将导出类更改为“导出默认值”,并在我的 index.js 中将导出从..更改为导入测试,现在当我使用 console.log(test)我可以看到[功能:应用程序]。我将如何正确导出它以便能够在我的 example.js 中导入它?
  • 我的 index.js 是从.....导入测试并导出默认测试,但在我的 example.js 中它仍然未定义
【解决方案2】:

我只是将 src/index.js 作为 main 放在 package.json 中,然后运行 ​​nodemon 而不使用 watch 参数。

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

路径也应该是这样的:

src/lib/test.js

export default class Test {}

src/index.js

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

例子/example.js

import {App} from '../'

【讨论】:

    猜你喜欢
    • 2015-11-05
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多