【问题标题】:Getting SyntaxError when trying to add version to javascript imports尝试将版本添加到 javascript 导入时出现 SyntaxError
【发布时间】:2020-01-28 13:14:58
【问题描述】:

我有一个使用 ES6 模块导入的 SPA 应用程序。我在这个项目中根本不使用 Webpack。但是当我尝试向我的 .js 文件添加一个版本时,我得到了一个错误

import `./store.js?v=${cr_version}`

未捕获的语法错误:意外的模板字符串

或者使用 + 语法

import `./store.js?v=` + cr_version

Uncaught SyntaxError: Unexpected token '+'

如何将版本控制添加到我的 .js 文件中,还有其他可以使用的语法吗?

【问题讨论】:

    标签: javascript ecmascript-6


    【解决方案1】:

    import 必须是原始字符串,不能是模板或函数调用。

    这样可以分析代码结构,可以通过特殊工具收集模块并将其捆绑到一个文件中。

    但是你可以使用import()函数,即:

    await import(`./store.js?v=${cr_version}`);
    

    【讨论】:

    • 谢谢,很遗憾它必须是原始字符串
    • 我找到了this article,也许对你有帮助。
    【解决方案2】:

    静态导入只能使用静态字符串。

    如果要在运行时动态确定模块名称,需要使用dynamic import

    import(`./store.js?v=${cr_version}`).then( store => {
        // do things with store
    });
    

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 2020-02-20
      • 2021-08-27
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多