【问题标题】:Cannot include javacsript [duplicate]不能包含 javascript [重复]
【发布时间】:2021-09-06 10:04:44
【问题描述】:

我觉得这是非常基本的东西,但我找不到正确的信息。我在我的 html 中包含了一个 javascript 文件:

<script src="/js/client_db.js" type="text/javascript"></script>

在 client_db.js 我试图包含一个类:

import { Socket } from './phoenix';

let socket = new Socket("/socket", { params: { userToken: "123" } })
socket.connect()
let db_channel = socket.channel("ledgers", {})

db_channel.join()
    .receive("ok", resp => {
        console.log("Joined successfully", resp)
        clientDb(db_channel)
    })
    .receive("error", resp => { console.log("Unable to join", resp) })
    .receive("timeout", () => console.log("Networking issue. Still waiting..."))
...

在 phoenix.js 我有这个类:

export class Socket {
...

但是,在浏览器控制台中出现错误:

Uncaught SyntaxError: Cannot use import statement outside a module

显然,解决这个问题的正确方法是将client_db.js转换为模块,但目前还不清楚如何最好地做到这一点。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您需要将脚本作为模块加载:

    <script src="/js/client_db.js" type="module" ></script>
    

    https://developer.mozilla.org/de/docs/Web/JavaScript/Guide/Modules#applying_the_module_to_your_html

    【讨论】:

    • 返回错误:未捕获的 SyntaxError:请求的模块 './phoenix.js' 不提供名为 'default' 的导出
    • 它是否提供名为“export”的导出?
    • 好的,它突然起作用了。似乎我的文件没有正确更新。
    【解决方案2】:

    将 type="module" 添加到脚本标签可能会为您解决这个问题?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2013-09-16
      • 2013-09-23
      • 2011-05-07
      • 2014-01-22
      相关资源
      最近更新 更多