将 javascript 与 html 一起使用时收到此错误"Uncaught SyntaxError: Cannot use import statement outside a module (a



大家好,我是网络开发的初学者。我正在做一个项目,在这个项目中,我需要使用一个带有html文件的javascript文件中的npm包npm i link-preview-js,并在浏览器
random.js文件中运行它

import { getLinkPreview, getPreviewFromContent } from "link-preview-js";
// pass the link directly
getLinkPreview("https://www.youtube.com/watch?v=MejbOFk7H6c").then((data) =>
console.log(data)
);

html文件

<!DOCTYPE html>
<html lang="en">
<head>
<script src="random.js"></script>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body></body>
</html>

我收到一个错误Uncaught SyntaxError: Cannot use import statement outside a module (at random.js:1:1)

我知道我是一个工程师,他们可能是一个愚蠢的错误,但请你帮我解决它,谢谢。

import是ES6模块(和TypeScript模块(的一个特性。

虽然浏览器确实支持它:

  • 只有当您将脚本声明为模块时,它们才会这样做
  • 它们不支持Node.js风格的模块解析,并且需要一个绝对的URL,或者以/.开头

通常将模块与打包程序(如Webpack或Parcel(结合使用。

也就是说,你需要阅读文档:

您不能从web应用程序请求不同的域(浏览器会阻止跨源请求(。如果您不知道同源策略是如何工作的,这里有一个很好的介绍,因此该库适用于节点(后端环境(和某些移动运行时间(cordova或react native(。

您可以考虑使用Node.js和Express.js创建一个Web服务,然后使用Ajax从客户端代码访问它。

如果您想调用js文件并导入js文件内部的内容,则需要将其作为模块导入到html中。

您可以将文件转换为模块或使用require语法对于第一个解决方案,请添加:

{
"type": "module"
}

在您的package.json文件中。我希望它能解决你的问题!

相关内容

最新更新