Laravel Mix 我无法访问我的 javascript 类

问题描述

在我的 Laravel 项目中,我编写了一个自定义表单验证类。使用 npm run dev 编译后,我无法访问此类。

我的文件

small-form-validation.js

class SmallFormValidator {
    errMsgs = {
        required: 'This field is required!',string: 'Not valid string.',...

我的 app.js

require('./bootstrap');
require('./myvendor/small-form-validator');

编译后,我在 public 文件夹内新创建的 app.js 文件中找到了类 SmallFormValidator 的源代码。看来他编译对了。

在我的刀片模板中,我使用混合助手加载了 app.js 文件。在刀片模板内的我的 JavaScript 中,我无法创建 SmallFormValidation 的实例(var sfv = new SmallFormValidation())。

我认为问题导致

  1. 我不使用模块导出等
  2. 或者我有一些范围问题。

有人知道怎么解决这个问题吗?

解决方法

一个简单的解决方法是将它分配给您的全局/窗口对象。在 small-form-validation.js 中添加 window.SmallFormValidator = SmallFormValidator 以使其全球可访问。

更好的方法是使用模块导出和导入