【问题标题】:ES6 - Duplicate declaration on importing filesES6 - 导入文件的重复声明
【发布时间】:2016-08-25 17:54:26
【问题描述】:

在 es6 之前:

var stream = require("./models/stream");
var stream = require("./routes/stream");

效果很好。

在 es6 中:

import stream from './models/stream';
import stream from './routes/stream';

错误:

TypeError: /var/www/.../es6/app.js: Duplicate declaration "stream"
> 31 | import stream from './routes/stream';

任何想法如何正确导入它?

【问题讨论】:

  • 你为什么要先导入/要求steam两次?
  • 这是一个合法的问题。为什么它在没有任何评论的情况下被否决?
  • @FelixKling 它们是两个不同的文件。在 pre-es6 中,var stream = require("./models/stream"); 应该是 require("./models/stream"); - 我猜!

标签: node.js express ecmascript-6 es6-module-loader


【解决方案1】:

使用不同的模块名称

import stream from './models/stream';
import streamroutes from './routes/stream';

【讨论】:

  • 您的第二个应该是import {default as streamroutes} from 或只是import streamroutes from
【解决方案2】:

您正在重新声明 stream 变量并且从不使用它,因此您可以只导入第一个文件而不进行赋值:

import './models/stream';
import stream from './routes/stream';

【讨论】:

  • 但它有这个错误Unexpected token (26:12) > 27 | import from './models/stream';
  • 应该就是:import './models/stream';
猜你喜欢
  • 2017-11-28
  • 2015-11-25
  • 2019-06-08
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
相关资源
最近更新 更多