无法导入节点模块



我想在JS, HTML和CSS中实现一个项目。为此,我需要一个日期选择器。我决定使用香草日期picker。

我的<<p> strong> webpack.config.js
const path = require('path');
module.exports = {
mode: 'development',
entry: './resource/js/app.js',
output: {
path: path.resolve(__dirname, 'public'),
filename: 'bundle.js',
},
};

在我的app.js中,我制作了import Datepicker from './../../node_modules/vanillajs-datepicker/js/Datepicker';

在浏览器控制台中,我得到以下错误消息:
GET http://localhost:8080/node_modules/vanillajs-datepicker/js/Datepicker
[HTTP/1.1 404 Not Found 2ms]
Loading failed for the module with source "http://localhost:8080/node_modules/vanillajs-datepicker/js/Datepicker". localhost:8080:31:1
Loading module from "http://localhost:8080/node_modules/vanillajs-datepicker/js/Datepicker" was blocked because of a disallowed MIME type ("text/html").

更新我app.js

import Datepicker from './../../node_modules/vanillajs-datepicker/js/Datepicker';
const elem = document.querySelector('input[name="dp"]');
const datepicker = new Datepicker(elem, {
autohide: true,
buttonClass: "text-gray-500",
title: 'db'
});

我的index . html

<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="css/style.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vanillajs-datepicker@1.1.4/dist/css/datepicker.min.css">
</head>
<body>
<h1>title</h1>
<input type="text" name="dp" class="w-5 h-5 text-gray-500 w-full">
<script src="js/app.js" lang="text/javascript" type="module"></script>
<script src="bundle.js" lang="text/javascript" type="module"></script>
</body>

出什么事了?

更新-解决方案

通常情况下,错误就在键盘前面。

问题是。我在HTML中谨慎地引用了未编译的源代码。

<script src="js/app.js" lang="text/javascript" type="module"></script>
<script src="bundle.js" lang="text/javascript" type="module"></script>
</body>

如果我删除了对app.js的引用,那么它就会工作。谢谢你的评论和回答。感谢@esqew!

如果您使用webpackapp.js及其依赖项编译为单个bundle.js(如您的配置文件所示),则不应再在HTML中引用任何未编译的源代码。使用像webpack这样的工具的全部意义在于将你的代码和它的依赖关系提取到一个单独的缩小的输出文件中(当然,除非你已经配置了它)。

您应该重新阅读webpack的入门文档,其中明确提到了这一点:

[…]因为我们将捆绑我们的脚本,我们必须更新我们的index.html文件[…]来加载bundle,而不是原始的./src文件....

看起来你的import语句有一个打字错误:

import Datepicker from './../../node_modules/vanillajs-datepicker/js/Datepicker';

"。/'用于同一目录下的文件。如果要返回3个目录,使用import Datepicker from '../../../node_modules/vanillajs-datepicker/js/Datepicker';

相关内容

  • 没有找到相关文章

最新更新