如何从开发工具控制台使用 ES6 模块

新手上路,请多包涵

据我了解,如果我创建一个 ES6 模块,我只能从本身就是一个模块的代码中导入它。这意味着非模块代码,即内联 Javascript,或 Chrome 开发工具控制台永远无法访问模块中的代码。

真的吗?有什么办法解决这个问题,因为它似乎是一个相当极端的限制。

原文由 Timmmm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 408
2 个回答

您可以在 Chrome 的控制台中使用 动态导入

 import('path/to/module.js').then(m => module = m)

// [doSomething] is an exported function from [module.js].
module.doSomething()

原文由 Kin 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用类似 window.myFunction = myFunctionwindow.myVariable = myVariable 的行在全局命名空间中注册函数或变量。您可以在声明 myFunctionmyVariable 的模块中执行此操作,或者在导入它们的单独模块中执行此操作。

完成此操作后,您将能够从 Chrome DevTools 控制台使用 myFunctionmyVariable

例如:

 import myModule from '/path/to/module.js';
window.myModule = myModule;

// in the console:
myModule.foo();

(感谢@Evert 在评论中提供了这个解决方案,尽管是以一种相当迂回的方式让我花了一段时间才弄清楚。)

原文由 Carl 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题