こんにちは、ほそ道です。 前回のRequireJSに続きブラウザ環境におけるモジュール管理について。 今回はWebpackを用いてソリッドなサンプルを作りつつ、本質的な所を抽出できればと思います。 目次はこちら Webpackはじめの一歩 彼是言う前にまずやってみよう! 下記のようなプロジェクト構成を作ります。
![モジュール管理、だけじゃない-Webpack入門 〜 JSおくのほそ道 #029 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/29583ae65afd537bfa47335116ab57bc85ade248/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJUEyJUUzJTgyJUI4JUUzJTgzJUE1JUUzJTgzJUJDJUUzJTgzJUFCJUU3JUFFJUExJUU3JTkwJTg2JUUzJTgwJTgxJUUzJTgxJUEwJUUzJTgxJTkxJUUzJTgxJTk4JUUzJTgyJTgzJUUzJTgxJUFBJUUzJTgxJTg0LVdlYnBhY2slRTUlODUlQTUlRTklOTYlODAlMjAlRTMlODAlOUMlMjBKUyVFMyU4MSU4QSVFMyU4MSU4RiVFMyU4MSVBRSVFMyU4MSVCQiVFMyU4MSU5RCVFOSU4MSU5MyUyMCUyMzAyOSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTZmNTdkYjk3NmNkMmEzZmEwMmYwYzAwODAwMGZlM2U%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaG9zb21pY2hpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yOGI3ZmU2MDdlY2NiOGY3YWU4ZDkxNWI0M2Y0ODhmZA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D64cc68d2ca677ab5408e369c989829ab)
この記事はWebpack — The Confusing Partsを、筆者の許諾を得て意訳しています。 何か誤りがありましたら、ご指摘いただけると幸いです。 (以下、訳) ReactとReduxで作られたアプリケーションにとって、Webpackは最先端を行くモジュールバンドラです。Angluar2やその他のフレームワークを使っている人々は、たいへんWebpackのお世話になっていることでしょう。 私が初めてWebpackの設定ファイルを見た時、それはさながら宇宙人のようで非常にわかりづらく見えました。しばらく試しているうちに、今では次のように考えるようになりました。Webpackは単に独特のシンタックスと新しい哲学を持っており、それがとっつきにくさの原因になっているのだと。偶発的とはいえ、これらの哲学は、Webpackの人気を押し上げた原因の1つでもあります。 Webpackのとっつきに
初めてのWebpack 今回はWebpackについて紹介したいと思います。 私自身は今回初めて使ったのですが、小規模なプロジェクトの途中から導入していて、 使ってみて結構良い感じなので記事にしてみました。 Webpackとは Node.jsでサーバーサイドで動かすモジュールバンドラーツールになります。 Node.jsでモジュールという単語を聞くと、「npmやbowerとかと何が違うの?」みたいな印象を持たれる方もいるかもしれませんが、基本的にはそれらとはまた違った役割をもっています。 npmやbowerはJSライブラリのバージョン管理などの目的としてよく利用されますが、WebpackはJSファイルのコーディングの部分で開発者の手助けをしてくれるのです。 Webpackの基本的な役割 5枚ほど図を書いてみましたので、画像とともに紹介していきます。 今回出てくるライブラリたちの紹介 今回使うラ
CSS in JSに夢を見たが、なかなか一筋縄では行かなかったので1、webpackにおけるCSSと本気で向き合ってみた。 しかしまだ理解が甘いところがあったのでloader, pluginまわりの関係性を整理した。 (前置き)webpackの基礎情報 css関連の本題にはいる前に、webpackの基礎を再確認する。 Webpackの特徴 webpackの特徴的な事項として、CSSや画像など、javascriptでないデータも基本的に全てをjavascriptで扱ってしまう、という事が挙げられる。 同等の対抗として挙げられるbrowserifyやrollupは、あくまでも「javascriptのmodule解決」にフォーカスしているのに対して、webpackは全く違う方向を向いている loaderとpluginの違い 結構あやふやに扱っていたが、上記のwebpackの基本部分を明確にして考
と書いて webpack でビルドすると、生成される bundle ファイルのサイズが非常に大きくなってしまいます。これは、moment.js が持つすべてのロケールファイルが bundle ファイルに含まれてしまうためです。ファイルサイズにシビアなフロントエンドではかなり大きな問題です。 (上図は source-map-explorer を使って生成しました) 解決策 webpack の IgnorePlugin か ContextReplacementPlugin を使えば、この問題を回避することが出来ます。 IgnorePlugin を使う場合 「デフォルトの en 以外にロケールファイルは必要ない」という場合は、IgnorePlugin が使えます。 const webpack = require('webpack'); module.exports = { //... plugi
(function(){ var self = this; $("button").click(function(){ // }) })() // 古いコードはglobalに定義された何か SomeLib.prototype.foo = function(){ // } 下記のような特徴があります。 ライブラリ系(jQueryやjQuery.functionなど)は別途読み込み common.jsのようなよくある共通ファイルが存在 1ページ中で、scriptはファイル単位で複数読み込み 原始的なJavaScript配信状態(Sprocketsのようなビルドプロセスとは全く無縁な状態) jQuery以外に、ライブラリ・フレームワークなどは基本入っていない 色々とJavaScript初心者殺しな記法が多い (function(){})()を利用したglobal汚染回避 self = thisの
お知らせ(2020/08/25 追記) Udemy で「webpack 最速入門(10,800 円 -> 2,000 円)という講座を公開しました。 本来の価格は10,800円ですが、上記リンクからアクセスすると2,400円で購入できます。 どんな内容? webpack を利用したフロントエンド開発環境が構築できるようになる、ハンズオン形式の講座です。 詳細は上記のリンクのプレビュー動画で詳しく説明しています。 記事との内容の違い 記事の内容に、以下の内容や特徴が追加された感じです。 実務で利用できる開発環境を徐々に構築していくので、記事と比べて実践的な内容 ハンズオン形式の講座なので、手を動かしながら webpack を学習できる webpack の設定ファイルに追加する値の詳細をすべて解説 記事では解説していない細かい補足や、機能のご紹介 なぜ npm scripts を利用するのか
Webpack で React を導入した Rails アプリケーションを Heroku で動かすまでの手順 環境 Rails : 5.0.1 node : 6.10.0 React, Webpack, Babel の導入 Rails のルートフォルダ直下に client/ ディレクトリを用意 client/ ディレクトリ配下に package.json を作成 React のパッケージをインストール Webpack, Babel のパッケージをインストールする $ mkdir client $ cd client $ npm init -y $ npm install --save react react-dom $ npm install --save-dev webpack babel-core babel-loader babel-preset-es2015 babel-prese
初めての投稿になります。 間違っている点など有りましたら、ご指摘いただけるとありがたいです。 最近React.jsをちょいちょい勉強しようかなーと思ったのですが、結構色々めんどくさいと思ったので自分用のメモとしても。 ・Mac OS X El Capitan ・Node.js 6.10.0 ・npm 4.3.0 Webpackとは コンポーネント化したいファイルがたくさんあるときに別ファイルにして管理したい。自分の中でのイメージとしては、その沢山のファイルを一個にまとめてくれるものかなと。名前のとおりですが、webをpackageする的な? 詳しくはWebpackの公式ホームページとか見て下さい Babelとは ES6->ES5に変換してくれるもの。 環境構築手順 ・Node.jsのインストール Node.jsの公式サイトからインストールしてくるか、Homebrewやnvmなどでインストー
仕事のプロジェクトでお世話になっているRailsが5.1からwebpackがサポートされるということで、そろそろモダンなフロントエンドにも力入れていきたい所存であるからして、手始めにwebpackとはなんぞやというところから始めようと思った次第です。 webpackとは webpack事始め v1とv2で全然違うのが罠 以上のことを自分なりにまとめてみました。 自分用の備忘録なので、分かりづらかったり、よく理解できてなかったりするかもしれませんが…コメントなどで指摘していただけるとありがたいです。 webpackとは webpackとはなんぞや。 早い話、Ruby大先生で言うところのBundlerみたいなもの……って例えるとわかりやすいでしょうか。 ちょっと違うような気もします。Node.jsのnpm先輩もいますし…。 モジュールバンドラー っていうのが正解らしいのですが、じゃあこのモジュ
はじめに 本編では今時のフロントエンド開発2017 (1. 愚痴編)に続き開発環境の構築をしていきます。 おしながき 今時のフロントエンド開発2017 (1. 愚痴編) 今時のフロントエンド開発2017 (2. 構築編) 今時のフロントエンド開発2017 (3. webpack編) 今時のフロントエンド開発2017 (4. TypeScript編) 今時のフロントエンド開発2017 (5. もっと効率よく編) 開発環境の構築 ナイスなエディタ コーディングをするにはエディタが必要になるわけですが,これは皆さんの信じるお好きなものを使ってください。 Atom Brackets Emacs Lime Text Sublime Text Vim Visual Studio Code なんでも良いです。 ちなみに私はVisual Studio Codeを使っています。 CLIの準備 準備と書きまし
TypeScript + webpack + Karma + Mocha + Power Assertでテストを行う際の諸々の設定ファイルJavaScriptTypeScriptmochakarmawebpack TypeScript + webpack + Karma + Mocha + Power Assertでテストを行う時の諸々の設定ファイル 最近、TypeScriptでコードを書いて、モジュールバンドラにwebpack、テストランナーにkarma、テスティングフレームワークにmocha、アサーションライブラリにPower Assertを使用したユニットテストを書いた その際に、諸々のツールが複雑で、設定ファイルの記述も大変だったので、ここで設定ファイルについてのメモを残しておこうと思う ※現段階では、設定ファイル自体にメモを書いただけです、後で個々の説明を書くかもしれません pa
Rails5.1が今betaで出ていますね。中でも目玉はwebpacker.gemによるモダンなフロントエンド開発がRailsに導入されることでしょう。 今までのRailsのasset pipelineとは別に、yarnによって依存性を管理しwebpackで結合する独立したjsのビルドシステムがサポートされます。 これによって、以下のような従来のasset pipelineでは解決がむずかしかった問題への解が示されました。 coffee scriptへの依存 npmによる依存性、バージョン管理が難しい javascriptのライブラリが野良gem化されてupdateされない問題 webpacker.gemはyarn/webpackの薄いwrapperとなっていて、加えて幾つかのrakeタスクを追加することでフロントエンド開発をサポートします。 具体的には以下のような機能が提供されます。 y
jQuery 1.7 あたりで知識が止まっている、最近のフロントエンド開発を知らない私が入門しています、という記事です。 なんか長くなったし、気力も持たないので、その1ということで書いています。 webpackってなあに? npm経由で入るアセットバンドラー (asset bundler)です。Webフロントエンド開発用のビルドツールです。 SPAなどを作る時、 HTML・JS・CSS・画像やウェブフォントなど一連のリソースをまとめてくっつけたり、 くっつけられるように加工したり、 JSをbabelで古いブラウザ向けに変換したり、 TypeScriptやらをJSに変換したり、 全部面倒見てくれます。 ただwebpackに上記の機能を全て内蔵しているわけもなく、プラグインやローダーとかいった追加の機能をプロジェクトにインストールして設定することにより利用できるようになります。 最近のフロント
{ "name": "asset", "version": "1.0.0", "description": "", "main": "webpack.config.babel.js", "scripts": { "watch": "webpack --watch --progress" }, "author": "", "license": "ISC", "devDependencies": { "babel-core": "^6.22.1", "babel-loader": "^6.2.10", "babel-preset-es2015": "^6.22.0", "babel-preset-es2015-riot": "^1.1.0", "riotjs-loader": "^4.0.0", "webpack": "^1.14.0" }, "dependencies": { "riot":
React の Helloworldを docker-compose を使って webpack + babel , express, webpack-dev-serverを試したメモExpressDockerReactbabelwebpack-dev-server webpack # Reactのトランスパイルを行うビルドツール - Dockerfile - package.json # npmのモジュールを管理・スクリプトの設定 - webpack.config.babel.js # webpackの設定ファイル。babelを利用してes6で記述可 - .babelrc # babelによるトランスパイルの設定ファイル express # サーバー - Dockerfile src - app.js # webpackのエントリポイント。このファイルをトランスパイルする。 myapp -
はじめに フロントエンドへスプラトゥーンを決めるために、Rails プロジェクト内で JavaScript を楽に良い感じに分離する方法を考えてみました。 先人たちが様々な方法を提示してくださっていましたが、設定が大掛かりだったり、何種類かのツールを活用したりと、自分にはどうもハードルが高かったため、より簡単な方法を模索しました。 TL;DR Initial commit で、この記事でこれから行う設定をコミットしています。 necojackarc-sandbox/rails_with_webpack 特徴 Sprockets の良い所はそのまま活用 導入ツールは実質 WebPack のみ 設定項目が少なく簡単 おそらくほぼメンテナンスフリー 概要 以下のような流れで、JavaScript のコーディング、ビルド、配信を行います。 frontendディレクトリ以下で JavaScript
やること webpackとそのPluginを使って、実務で使えるレベルにするには、情報が断片的だったのでまとめてみました。 [追記] Railsとwebpackの共存方法についても記述しました。 以下の事を実現する ES6をES5に変換 babel-core babel-loader babel-preset-es2015 SCSSのコンパイル css-loader style-loader extract-text-webpack-plugin sass-loader node-sass JS内にHTMLファイルを読み込む html-loader Font Awesomeをnpmでインストール file-loader url-loader ブラウザのLive Reload browser-sync browser-sync-webpack-plugin .envでの設定値をセットし、pr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く