27
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScriptAdvent Calendar 2016

Day 6

結構困ったwebpackのお話

Last updated at Posted at 2016-12-06

お話

JavaScript Advent Calendar 2016 6日目の記事です。
webpackでjQuery Pluginを管理しようとするとうまくビルドできなくて結構困りました。
jQueryの導入、jQueryPluginの導入を通して悩んだポイントを紹介していきます。
基本的なwebpackの使い方、webpackとはなんぞや?については解説しません。

勉強になるサイト

前提

  • webpack.config.jsを作成
  • npmで必要なパッケージはインストール済み
  • webpack.ProvidePluginでjQuery, jquery, $をaliasにjqueryを読み込んでいる

jQuery-UIのautocompleteを使う

// index.js
require('jquery-ui/ui/widgets/autocomplete');
$('[name="autocomplete-field"]').autocomplete({
  source: MY_SOURCE
});
  • jquery-uiの場合複数の機能が一つのパッケージにまとめられているので、目的のscriptを直接requireしてくる必要がある
  • npmの場合はnode_modules/jquery-uiの中身を見ればわかります

pickadateのDatePicker機能を使う

// webpack.config.js
// ... 省略
resolve: {
  alias: {
    'picker': 'pickadate/lib/picker'
  }
},
// ... 省略
// index.js
require('picker');
require('pickadate/lib/picker.date');
$('[name="datepicker-field"]').pickadate();
  • pickadateのDatePicker機能を利用するためにはpicker本体とpicker.date両方が必要
  • またpicker.dateの中でdefine( ['picker', 'jquery'], factory )しているためrequire('pickadate/lib/picker')のままではダメで、pickerでaliasを作成する必要がある

以上短いですが、私自身がこの2つを動かすのに無駄に数時間悩んだので、誰かの助けになれれば幸いです。

27
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?