我试图在aurelia中使用RobinHerbots' Inputmask,但似乎无法正确导入它。
我遇到过一些人在讨论如何在aurelia中使用这个插件,但是我找不到关于如何使用这个插件的具体文档。
npm i inputmask --save之后,这就是我的aurelia.json中的内容:

{
   "name": "inputmask",
   "path": "../node_modules/inputmask/dist",
   "main": "jquery.inputmask.bundle",
   "deps": [
      "jquery"
      ]
}

在我的package.json中,我声明了inputmask
"dependencies": {
//...
"inputmask": "^3.3.11",
//...
}

我在运行au build时没有看到错误。但是,当我使用es6导入时,我不能使用它的任何属性。
import Inputmask from "inputmask";

attached() {
     let im = new Inputmask('999-99-9999');
     let select = document.getElementById('social-security-number-field');
     im.mask(select);
}

产生Unhandled promise rejection TypeError: inputmask_1.default is not a constructorUncaught TypeError: Cannot read property 'value' of undefined
Inputmask error in the console
当我尝试使用data-inputmask属性时,它也不起作用。
<input type="text" class="form-control" id="social-security-number-field" value.bind="ssn" data-inputmask="'mask': '999-99-9999'">

Input is not successfully masked using data-inputmask
我遗漏了什么吗?我只在导入专门针对aurelia或state的插件时有经验,它们可以与aurelia一起使用,所以我可能确实遗漏了一些重要的东西。

最佳答案

这个包不太兼容。他们把它和网页包捆绑在一起。它没有任何默认导出,可能只适用于webpack。
尝试导入常规生成输出:

{
   "name": "inputmask",
   "path": "../node_modules/inputmask/dist/inputmask",
   "main": "inputmask",
   "deps": ["jquery"]
}

这将需要你在你的jquery.inputmask.bundle.js中还包括的其他依赖项,但是如果是这样的话,你会得到一个适当的警告。
编辑:
您还应该将导入语句更改为:
aurelia.json
致:
import inputmask from "inputmask"
输入掩码没有默认导出,这就是为什么导入语句无法工作的原因。

09-25 21:21