首页 > 解决方案 > 使用带有 Laravel Mix 的 npm 模块,没有 .js 扩展名的“import”语句出错

问题描述

我在 Laravel 项目中使用 CKEditor 5,从 CDN 获取它,所以最初我不需要运行 npm。但是现在我需要一个对齐插件,所以我使用 Laravel Mix 运行 npm install,然后将插件复制到 public 文件夹。像这样:

mix.copyDirectory('node_modules/@ckeditor', 'public/@ckeditor');

在我的代码中,我尝试导入它:

import Alignment from '/@ckeditor/ckeditor5-alignment/src/alignment.js';

所以它在控制台中抛出了这个错误

未捕获的类型错误:无法解析模块说明符“@ckeditor/ckeditor5-core/src/plugin”。相对引用必须以“/”、“./”或“../”开头。

我通过使用 /@ckeditor/ckeditor5-core/src 自动替换插件中的所有@ ckeditor/ckeditor5-core/src引用来解决它

但是现在,它会抛出这些导入错误,这是因为导入时插件代码中缺少.js扩展名

alignment.js:10 GET http://localhost:8000/@ckeditor/ckeditor5-core/src/plugin net::ERR_ABORTED 404(未找到)

alignment.js:12 GET http://localhost:8000/@ckeditor/ckeditor5-alignment/src/alignmentediting net::ERR_ABORTED 404(未找到)

alignment.js:13 GET http://localhost:8000/@ckeditor/ckeditor5-alignment/src/alignmentui net::ERR_ABORTED 404(未找到)

我的问题是,是否有一些工具可以在这些 import 语句的末尾添加扩展,或者是否有更简单的方法可以在不运行 Node.js 的情况下使用这个 npm 模块,因为我是npm的菜鸟。

标签: javascriptnode.jsnpmckeditorlaravel-mix

解决方案


推荐阅读