使用 NPM 和 Laravel Mix 时,CKEDITOR 的基本路径不正确

Ale*_*lex 7 ckeditor npm laravel-5

当我尝试使用 NPM 将 CKEDITOR 包含到我的新 Laravel 5.5 项目中时,我在 Chrome 控制台中收到以下错误(对 local.dev 使用 laravel Valet):

app.js:16991 GET https://local.dev/chart/config.js?t=H7HG 
app.js:16991 GET https://local.dev/chart/skins/moono-lisa/editor.css?t=H7HG 
app.js:16991 GET https://local.dev/chart/lang/en.js?t=H7HG 
Run Code Online (Sandbox Code Playgroud)

我的 Laravel Mix 设置如下所示:

mix.js('resources/assets/js/app.js', 'public/js')
  .babel(['resources/assets/js/libraries/*.js'], 'public/js/vendor.js')
  .version();
Run Code Online (Sandbox Code Playgroud)

我的 CKEDITOR 安装位于:

/vendor/ckeditor/ckeditor
Run Code Online (Sandbox Code Playgroud)

我可以在站点加载后访问 CKEDITOR 实例。但是,如上所示,当我导航到https://local.dev/chart 时,CKEDITOR 现在查找配置、皮肤和 lang 文件,其中 /chart 附加到它的基本路径。

我做了一些研究,发现了一些相关问题,并且能够成功地使用 asset() 更改 base_path。相关的 stackOverflow 问题可以在这里这里找到。

我想要做的是通过 NPM 拉入 CKEDITOR,使用 Laravel Mix 组合、版本和缩小我的脚本(一个用于供应商库,一个用于我的特定于应用程序的 JS),然后将这两个 .js 文件输出到这些Laravel 应用程序中的目录:

 /public/js/vendor.js
 /public/js/app.js
Run Code Online (Sandbox Code Playgroud)

Laravel mix 生成这两个文件,构建成功,所有其他库都运行良好。但是,CKEDITOR 丢失了它的基本路径并引发了寻找皮肤/langs/config.js 的错误——知道如何调整 CKEDITOR 的 basePath 以指向供应商文件,以便它停止发出这些错误并正常工作吗?

预先感谢您提供的任何帮助!

Ale*_*lex 6

对于那些与我有同样问题的人,我找到了一个根本不涉及修改 CKEDITOR 的解决方法:

使用 Webpack 复制需要的 CKEDITOR 文件:

.copy('node_modules/ckeditor/config.js', 'public/js/ckeditor/config.js')
.copy('node_modules/ckeditor/styles.js', 'public/js/ckeditor/styles.js')
.copy('node_modules/ckeditor/contents.css', 'public/js/ckeditor/contents.css')
.copyDirectory('node_modules/ckeditor/skins', 'public/js/ckeditor/skins')
.copyDirectory('node_modules/ckeditor/lang', 'public/js/ckeditor/lang')
.copyDirectory('node_modules/ckeditor/plugins', 'public/js/ckeditor/plugins')
Run Code Online (Sandbox Code Playgroud)

然后,在您的页面正文中,添加:

<script> var CKEDITOR_BASEPATH = '/js/ckeditor/'; </script>
Run Code Online (Sandbox Code Playgroud)

这将允许 CKEDITOR 找到所需的文件。这对我来说有点难看,所以也许有更好的方法来做到这一点 - 如果是这样,请让我知道并拒绝这个答案。