【问题标题】:Module not found when using import instead of require使用 import 而不是 require 时找不到模块
【发布时间】:2018-01-25 11:11:05
【问题描述】:

我正在尝试对项目中的所有模块使用import 而不是require,但一些较旧的npm 模块只有require 的说明。

在“isomorphic-fetch”的情况下,我找不到使用导入的正确方法:

作品

require('isomorphic-fetch')

失败

import 'isomporphic-fetch'   
import Something from 'isomorphic-fetch'

// error Can't resolve 'isomporphic-fetch' from Project/src/js/

转换为import 确实适用于es6-promise 模块。

作品

require('es6-promise').polyfill()

作品

import Something from 'es6-promise'
Something.polyfill()

【问题讨论】:

标签: javascript ecmascript-6 es6-modules


【解决方案1】:

由于import 确实可以与其他模块一起使用,并且require('isomorphic-fetch') 可以正常工作,所以这可能是named export 的问题。

试试import * as Something from 'isomorphic-fetch'

如果这样可行,那是因为isomorphic-fetch 没有export deafult,所以你必须按名称拉入imports,或者使用我上面写的符号。看看我放在上面的 MDN 链接。

【讨论】:

  • 谢谢,就是这样。仍然不确定我为什么需要Something,因为从未使用过该变量。 import * from 'isomorphic-fetch' 不起作用。
  • 看repo,它唯一的导出是fetch函数。但除了导出它之外,他还覆盖了global。因此,正如他在README 中所写,您根本不需要import,只需require 而无需分配。我同意es6-promise 的 polyfill API 更容易理解
  • 是的,我意识到 require 也可以,但我更喜欢坚持一种语法。如果import 'isomporphic-fetch' 工作就好了。
猜你喜欢
  • 1970-01-01
  • 2021-10-28
  • 2019-08-31
  • 2019-03-27
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 2017-10-11
相关资源
最近更新 更多