【问题标题】:JS import is returning syntax errorJS 导入返回语法错误
【发布时间】:2017-03-06 11:59:52
【问题描述】:

这有点棘手,所以我会尽力解释它。

我们使用 erp 解决方案来创建临时表单。在这些表单上,我们可以编写一些 js 并使用我们的解决方案开发人员提供的内部 API。

现在我们面临的情况是,几种不同的表单必须使用通用的数据结构和功能(用于数据验证、使用交互等......)。

我们可以在每个表单中包含所有代码并使其工作,但这似乎是一个糟糕的解决方案。如果我们生成一个 js 库来导出这些数据结构和功能可能会好很多,这样我们就可以以每种形式导入它们,然后在一个文件中更新它。

事实上,当我们尝试导入公共库时收到语法错误,可能是因为在执行时,我们键入的代码被封装到开发人员代码中的函数中。

ourProviderObject.ourProviderMethod('formName').clientLogic = 
    function(datpar, self, editable, store) { 
        import 'https://pathToOurTestLibrary.js'; //here starts our code!!!

所以...我想知道为什么会出现语法错误。如果不允许这样的操作(从函数中导入文件),我会期待另一种类型的错误。

可以从函数内部进行导入吗?

如果是……语法错误背后的原因是什么?

【问题讨论】:

  • 你确定运行 API 的解释器支持 ES6 吗?
  • 我不确定...但如果不是这种情况,预计不会出现不同的错误说明“导入”未定义?
  • 好吧,如果你在 Node 中输入 foo 'ab'; 你会得到 SyntaxError: Unexpected string

标签: javascript es6-module-loader


【解决方案1】:

好的...我已经从 IE 切换到 FF 并且错误变得更加清晰:

语法错误:导入声明只能出现在模块的顶层。

所以我想这回答了我的问题,你不能从函数或回调中导入文件

【讨论】:

  • 我认为您在问题中没有提到 Internet Explorer。我不会将它的 ES6 支持定义为一流的 :)
  • 是的,我在看到您的消息时就想到了。 IE 是我们供应商的要求 :(
猜你喜欢
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2021-01-04
  • 2019-05-19
  • 2021-09-17
相关资源
最近更新 更多