gpt4 book ai didi

Javascript 导入包无法解析模块说明符

转载 作者:行者123 更新时间:2023-12-05 08:05:02 25 4
gpt4 key购买 nike

我正在尝试导入我用 npm 下载的模块。

我的 json 文件是:

{
"name": "nodejs-web-app1",
"version": "0.0.0",
"description": "NodejsWebApp1",
"main": "server.js",
"author": {
"name": ""
},
"dependencies": {
"fs": "^0.0.1-security",
"http": "^0.0.1-security",
"node-pandas": "^1.0.5",
"node-static": "^0.7.11",
"require": "^2.4.20",
},
}

我有我的 html 文件:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Home</title>
<script type="module" src="functions.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<h1>Dashboard</h1>
<p>Welcome!</p>
<button onclick="scraper()">CLICK</button>
<label id="label">Reponse</label>
</body>

</html>

我的 functions.js 文件

import pd from 'node-pandas';
function scraper() {
const s = pd.Series([1, 9, 2, 6, 7, -8, 4, -3, 0, 5])
console.log(s);
document.getElementById('label').innerHTML = 'A computer science portal for geeks';
}

和我的 server.js 文件:

var nStatic = require('node-static');
var http = require('http');
var fs = require('fs');
var port = process.env.PORT || 8080;

var file = new nStatic.Server(__dirname);

http.createServer(function (req, res) {
file.serve(req, res);
}).listen(port);

但是运行代码的时候出现错误

Uncaught TypeError: Failed to resolve module specifier "node-pandas".Relative references must start with either "/", "./", or "../".

我试过了,但它也给出了另一个错误。

如果我写:

import pd from './node-pandas';

import pd from '../node-pandas';

我得到:

GET http://localhost:1337/node-pandas net::ERR_ABORTED 404 (Not Found)

我的项目有这样的结构:

  • 我的项目
    • server.js
    • 函数.js
    • index.html
    • package.json
    • 节点模块
      • 节点 Pandas

我正在使用 visual studio 2019

知道我做错了什么吗?

最佳答案

我遇到了完全相同的问题(我完全是初学者)。

我通过 NPM 安装了一个依赖项,在那个项目中他们使用了像这样的导入语句

import pd from './node-pandas';

代替

import pd from './node-pandas.js';

所以我有这样一种情况,Live Server 在“http://localhost/scriptname.js”上托管 javascript 文件,而项目正在寻找该文件而不是“http://localhost/scriptname”(没有.js 扩展名)

我当然可以将 .js 添加到 import 语句中,但是我必须为这个外部项目的所有文件上的所有 import 语句执行此操作。

很奇怪,关于这个错误的信息不是很多,但总结一下:

  • 存在模块说明符和相关导入引用之类的东西:https://sbcode.net/threejs/module-specifiers/
  • 您只能使用相对导入引用。如果你想使用模块说明符,你需要一个工具来解决这些问题
  • 此类工具的一个示例是 WebPack。它将为您解析所有这些导入语句并生成一个 javascript 文件,而不是您可以将其添加到您的 html 文件中

关于Javascript 导入包无法解析模块说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66282776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com