【发布时间】:2016-10-27 05:57:19
【问题描述】:
我在使用 webpack 和 TypeScript 导入 jquery.inputmask 时遇到问题。在 Question: build this with webpack/es6 #1115 有一些讨论:
这就是我如何使用 jqlite 进行设置
像这样在您的应用中导入:
import InputMask from 'inputmask';要使用该名称使模块可用,您必须给它起别名并且 开发库
webpack 配置(使用 jqlite dep 库,如果 你用那个代替):
{ // ... your config + resolve: { alias: { 'inputmask.dependencyLib': path.join(__dirname, 'node_modules/jquery.inputmask/extra/dependencyLibs/inputmask.dependencyLib.jqlite.js'), 'inputmask': path.join(__dirname, 'node_modules/jquery.inputmask/dist/inputmask/inputmask.js') } } }
我有一个类似的 webpack 配置,使用 jQuery 而不是 jqLite 作为依赖项:
alias: {
"inputmask.dependencyLib": path.join(__dirname, '../node_modules/jquery.inputmask/dist/inputmask/inputmask.dependencyLib.jquery.js'),
"inputmask": path.join(__dirname, '../node_modules/jquery.inputmask/dist/inputmask/inputmask.js')
}
使用import InputMask from "inputmask";,TypeScript 编译器会抛出错误:
错误 TS2307:找不到模块“输入掩码”。
使用import "inputmask"; 调用$(element).inputmask(mask); 时出现运行时错误:
TypeError: $(...).inputmask 不是函数
是配置有问题,还是库本身有问题?
【问题讨论】:
-
您必须将
import "inputmask";放入您的入口点,然后您可以使用import InputMask from "inputmask";将模块的元素导入您的类中 -
@iberbeu 我在这样做时遇到了同样的 TS2307 错误。
标签: typescript webpack jquery-inputmask