【问题标题】:Failed to resolve module specifier "vee-validate". Relative references must start with either "/", "./", or "../"无法解析模块说明符“vee-validate”。相对引用必须以“/”、“./”或“../”开头
【发布时间】:2020-02-08 14:42:48
【问题描述】:

我们不使用npm,因为我们从事Django 项目,但我们在模板中使用VueJS。现在我们成功使用了vee-validate,我需要覆盖错误消息。问题是我找不到除importing 之外的其他方法,而且我不能这样做。

我尝试创建一个新的<script type="module">,但显然不起作用:

Failed to resolve module specifier "vee-validate". Relative references must start with either "/", "./", or "../".

这是我的代码。

<script src="https://unpkg.com/vee-validate@2.0.0-beta.25"></script>

<script type="module">
    import {localize} from 'vee-validate';

    localize({
        en: {
            messages: {
                required: 'xxxxxxxx',
                min: 'this field must have no less than {length} characters',
                max: (_, {length}) => `this field must have no more than ${length} characters`
            }
        }
    });
</script>

您对如何覆盖这些消息有任何想法吗?

【问题讨论】:

  • “我们不使用 npm,因为我们在 Django 上工作”这句话可能反映了一个根本性的误解。项目通常同时使用客户端和服务器端包管理器来处理它们各自的依赖项
  • @AluanHaddad 是的,但就目前而言,这是最简单的解决方案。只是为了将 vue 导入我们需要的每个页面。有没有办法在没有 npm 的情况下完成这项工作?我们还使用 Django 模板和 DRF。
  • 是的,有办法让它发挥作用。下载 vee-validate,将其放在您的 webroot 下,然后使用错误消息指示的相对路径导入它。

标签: javascript vue.js vee-validate


【解决方案1】:

VeeValidate 包含在&lt;script&gt; 中可以正常工作(如docs 所示)

一旦包含,全局VeeValidate 对象就可用。如果您使用 非 beta 版本(例如 2.0.9),这将起作用(是否有理由使用 oldbeta 版本?)

<script type="text/javascript">
VeeValidate.Validator.localize({
        en: {
            messages: {
                required: 'xxxxxxxx',
                min: 'this field must have no less than {length} characters',
                max: (_, {length}) => `this field must have no more than ${length} characters`
            }
        }
    });
</script>

不幸的是,文档中没有太多script 用法的示例,因此您必须自己探索 API(只需执行 console.log(VeeValidate))。使用 NPM 版本会更容易 100%...

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多