Webpack5勘所
はじめに
Webpack5が
2020/10/10にリリース
された。
Webpackは中規模以上のweb軽開発ではデファクトスタンダードなんじゃないだろうか。
自分が関わっているほとんどすべてのフロントエンドではWebpackが使用されている。
慣れるまでは難しいが、学んだ内容を備忘録的にこのページにまとめる。
基本概念
Webpackとは基本的にはJavaScriptアプリケーション用の静的モジュールバンドラーです。
つまり、基準となるJSファイルを指定することで、それに紐づく依存関係モジュールを1つのファイルに結合してくれます。
これを理解するために基本コンセプトは以下です。
| 概念 | 意味 |
|---|---|
| entry | 依存関係の起点となるファイル。デフォルトで./src/index.js |
| output | 出力パスやファイル名。 |
| loaders | JSとJSONファイルだけ理解するWebpackに、変換可能なモジュールを追加します。主にtest(対象ファイルの識別)とuse(どのローダーを使用するか)の2つのプロパティを使って設定します。 |
| plugins | requireしてpluginsに追加することで、機能を追加できます。 |
| mode | developmentやproductionまたは独自の環境の最適化に使用できます。 |
entry / output
[https://webpack.js.org/concepts/entry-points/](Entry Points) https://webpack.js.org/concepts/output/
最も単純な例は以下のような設定です。
module.exports = {
entry: './src/file.js',
output: {
filename: 'bundle.js',
},
};
より複雑な設定では、複数ページのアプリケーション用にマルチエントリの設定や、ouputのファイル名やパス名を動的に変更することも可能です。
Loaders
https://webpack.js.org/concepts/loaders/
例として、以下のようにローダーを追加します。
npm install --save-dev css-loader ts-loader
module.exports = {
module: {
rules: [
{ test: /\.css$/, use: 'css-loader' },
{ test: /\.ts$/, use: 'ts-loader' },
],
},
};
この例だと、.cssファイルに対してcss-loaderを.tsファイルに対してts-laoderを適用します。
以下の例のように、.cssに対して複数のLoaderを適用することも可能です。
この場合は、下から順にLoaderが適用されます。
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
modules: true
}
},
{ loader: 'sass-loader' }
]
}
]
}
};
ちなみに、css-loaderはCSSをJS用に変換するLoader、style-loaderはCSSをJSに挿入するLoaderです。
Plugins
https://webpack.js.org/concepts/plugins/
Pluginsは主にLoaderではできないことを実行するために使用されます。
例えば、HtmlWebpackPluginは以下のように使用できます。
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
...
plugins: [
new HtmlWebpackPlugin({ template: './src/index.html' }),
],
};
多くのプラグインはオプションを定義できます。
https://webpack.js.org/plugins/ からほしいPluginを探せます。
個人的には
https://webpack.js.org/plugins/html-webpack-plugin/
は頻出です。
自動で依存関係のJSをHTMLに挿入してくれるので、漏れが無く便利です。
Ionic vueを試してみる
はじめに Ionicとは、ハイブリッドアプリを作成するフレームワークです。 Ionicは元々Angularというフレームワークに依存していましたが、Vue.jsが使えるようになったので、実際に試してみようと思います。 アプリを作る IonicのCLIをインストール yarn global add @ionic/cli@latest global: local内でどこからでも参照できるようにします Ionic CLIの6.17.0がインストールされました。 以下のようなコマンドがあります。 completion ...................... (experimental) Enables tab-completion for Ionic CLI commands. config <subcommand> ............. Manage CLI and project config values (subcommands: get, set, unset) deploy <subcommand> ............. (paid) Appflow Deploy functionality (subcommands: manifest) docs ............................ Open the Ionic documentation website info ............................ Print project, system, and environment information init ............................ (beta) Initialize existing projects with Ionic login ....
マインドマップ調査
はじめに マインドマップ関連のツールや技術に関して調べた結果の議事録。 マインドマップツール Mindmeister Miro Whimsical その他 複雑GUIの会 Markdownツール [HackeMD](https://hackmd.io/ まとめ マインドマップを作るための技術は主に以下の3種類 HTML SVG Canvas Canvasは実装に手間がかかるが、表現力が最も高い。 また、画像でのエクスポートが用意。 SVGは十分表現力が高いが、テキストの処理が弱い。 HTMLでもマインドマップを作成可能だが、曲線の表現はSVGなどを頼るしかないので、簡易的なマインドマップしか作れない。...