npm 在使用JavaScript和html“Uncaught SyntaxError:无法在模块外部使用import语句(随机.js:1:1)”

m4pnthwp  于 2023-06-23  发布在  Java
关注(0)|答案(3)|浏览(165)

大家好,我是Web开发的初学者。我正在做一个项目,在那里我需要使用一个npm包npm i link-preview-js在JavaScript文件与HTML文件,并在浏览器中运行它
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)
我知道我是一个乞丐,他们可能是一个愚蠢的错误,但请你能帮助我解决它提前感谢。

bwitn5fc

bwitn5fc1#

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

{
  "type": "module"
}

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

yizd12fk

yizd12fk2#

importES6 modules(和TypeScript模块)的一个特性。
虽然浏览器支持它:

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

更典型的是将模块与捆绑器(如WebpackParcel)结合使用。
也就是说,你需要read the documentation
您无法从Web应用请求不同的域(浏览器阻止跨源请求)。如果你不知道同源策略是如何工作的,这里有一个很好的介绍,因此这个库可以在node(后端环境)和某些移动的运行时(cordova或react-native)上工作。
您可以考虑使用Node.js和Express.js创建一个web服务,然后使用 AJAX 从客户端代码访问它。

eqqqjvef

eqqqjvef3#

如果你想调用js文件并在js文件中导入一些东西,你需要将它作为一个模块导入html。

相关问题