私はポップオーバー、ツールチップ、モーダルのように、ブートストラップのjQueryのプラグインを呼び出そうとこだわっている、...ES6
私はWebPACKのを使用していますし、これは私のES6のjavascriptのです:
import $ from 'jquery';
//import Bootstrap from 'bootstrap-sass';
//import Bootstrap from 'bootstrap-loader';
import Bootstrap from '../vendor/bootstrap.min.js';
class Test {
constructor() {
$('[data-toggle="tooltip"]').tooltip({ html: true });
}
}
私はnpmでブートストラップをインストールしようとしましたが、その後、どのノードモジュールをインポートしたかわかりませんでした(インポートのコメント行に表示されるように)。だから、私は直接bootstrap.min.js
をインポートすると思った。
事実は、私はまだ私のjavascriptはWebPACKのから生成された私のapp.js
で、このように(私はポップオーバー/モーダル/ツールチップで試す独立している場合)、エラーを持っているということです。
Uncaught TypeError: (0 , _jquery2.default)(...).tooltip is not a function
私が言うように、私はここにこだわっている。
最後の事、ブートストラップCSSが正しくこれのおかげで動作します:ブートストラップライブラリは、あなたのWebPACKの「プラグイン」のアレイに次のプラグインを追加してみてください 、jQueryのに依存しているため
gulp.task('bootstrap-fonts', function() {
return gulp.src('node_modules/bootstrap-sass/assets/fonts/bootstrap/*')
.pipe(gulp.dest('./app/assets/fonts/bootstrap'));
});
gulp.task('dev', ['css', 'bootstrap-fonts', 'browser-sync', 'webpack'], function() {
gulp.watch('src/scss/**/*.scss', ['css']);
gulp.watch('src/js/**/*.js', ['webpack']);
gulp.watch('app/*.html', ['bs-reload']);
});
「jquery」から「import $」が不十分ですか? – luke88
いいえ、このファイル(この現在のモジュール)内に 'jquery'をインポートしただけなので、このファイルだけが現在「jquery」を「知っています」。ブートストラップ自身がグローバルなjQueryオブジェクトを使用しています。これは、jQueryオブジェクトについてブートストラップに知らせるためのWebpackの方法です。 – Jumpa
@Jumpaは他のライブラリと同じですか? 'library.js'を必要とする2つのコンポーネントがあるとしましょう。それをグローバルスコープに入れることは、それを2回(各コンポーネントに1回)インポートするよりも良い習慣だと思いますか? – JohnnyQ