4

webpack と TypeScript で jquery.inputmask をインポートできません。Question: build this with webpack/es6 #1115でいくつかの議論があります:

jqliteで設定する方法は次のとおりです

次のようにアプリにインポートします。

import InputMask from 'inputmask';

その名前でモジュールを利用できるようにするには、それと dep lib にエイリアスを設定する必要があります

webpack config (jqlite dep lib を使用し、代わりに jquery を使用する場合はこれを jquery に交換します):

{
  // ... 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')
    }
  }
}

依存関係として jqLit​​e の代わりに jQuery を使用した同様の webpack 構成があります。

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: モジュール 'inputmask' が見つかりません。

import "inputmask";呼び出すと、ランタイム エラーが発生します$(element).inputmask(mask);

TypeError: $(...).inputmask は関数ではありません

設定に問題がありますか、それともライブラリ自体に問題がありますか?

4

2 に答える 2

4

週末に誰かがGitHubで同様の質問をし、解決策も投稿されました。

完全な要点 (コメント付き) は、ここにあります。追加のエイリアスが 2 つ必要です。

"jquery": path.join(__dirname, '../node_modules/jquery/dist/jquery.js'),
"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'),
"jquery.inputmask": path.join(__dirname, '../node_modules/jquery.inputmask/dist/inputmask/jquery.inputmask.js')

次に、ライブラリをインポートするには、 を使用しますimport "jquery.inputmask";

于 2016-06-29T07:56:51.113 に答える