質問するログイン新規登録
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1487閲覧

JavaScript(ES5)・CSSファイルを結合・ミニファイする方法

Ison

総合スコア14

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2019/06/20 14:37

0

1

JavaScript(ES5)・CSSファイルを結合・ミニファイする方法

複数のJavaScriptとCSSファイルを、一つのファイルに結合して、さらにはミニファイしたいと考えています。
以下のようなイメージです。

a.js b.js c.js  ↓ bundle.js (こちらのファイルに各ファイルのコンテンツが書き込まれミニファイされる) a.css b.css c.ss  ↓ bundle.css (こちらのファイルに各ファイルのコンテンツが書き込まれミニファイされる)

前提として、入力となるJavaScriptは昔ながらのES5という制約があります。

以下のページを参考に、Webpackでの実現を試みたところ、cssに関しては結合とミニファイを実現できましたが、jsに関しては上手くできませんでした。

参考:https://knooto.info/webpack-simple-minify/

WebpackはES6のファイルたちを、entryで指定したjsファイル内で、依存ファイルのimportによりまとめ上げるという流れかと思いますが、そもそも入力はES5にしたいので、自分が求める結果とは異なり、どのように実現すれば良いのか途方にくれています。

ファイルを結合してミニファイルするという、非常にシンプルな目的なので、きっと何かしら、やり方があるのではないかと考えていますが、

Webpackの記事のほとんどが、ES6のようなモダンなものを前提に取り上げられているので、自分が要求する知見に辿り着けないでいます。

有識者の方おりましたら、ご回答頂ければ有難く思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

WebpackはES6のファイルたちを、entryで指定したjsファイル内で、依存ファイルのimportによりまとめ上げるという流れかと思いますが、

Webpackでもmodule.exportsrequire()を使った、ES Modules以前のCommonJS形式でファイルどうしの連携を行うことも可能です。

投稿2019/06/20 15:01

maisumakun

総合スコア146717

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ison

2019/06/22 01:35

ご回答ありがとうございます。 質問の仕方が悪かったのかもしれないですが、既存のjsファイルに改変を加える事なく、ファイルを結合・ミニファイをしたかったので、module.exportsやrequireの活用による実現は、今回のケースでは使えないのではないかと思いました。
maisumakun

2019/06/22 01:41

> 既存のjsファイルに改変を加える事なく、ファイルを結合・ミニファイをしたかった Webpackの一般的な使い方ではありませんが、webpack-merge-and-include-globallyというプラグインを使えば対応できるようです。 https://www.npmjs.com/package/webpack-merge-and-include-globally
Ison

2019/06/22 01:52

ご返信有難うございます。無事解決に至りました。
guest

0

自己解決

自己解決したので、解決方法を記します。

NodeJSで、webpackをインストールします。

必要なプラグインは以下の通りでした。

npm install --save-dev webpack-merge-and-include-globally npm install --save-dev uglify-js npm install --save-dev clean-css

以下のように、「webpack-merge-and-include-globally」プラグインを使い、ファイルの結合を実現できます。
さらに、同プラグインのtransformでミニファイのプラグインを掛け合わせる事で、結合・ミニファイを同時に実行することができました。

webpack.config.js

Javascript

1const MergeIntoSingleFilePlugin = require('webpack-merge-and-include-globally'); 2const UglifyJs = require('uglify-js'); 3const CleanCSS = require('clean-css'); 4 5module.exports = { 6 plugins: [ 7 new MergeIntoSingleFilePlugin({ 8 files: { 9 "bundle.js": [ 10 './public/a.js', 11 './public/b.js', 12 ], 13 "bundle.css": [ 14 './public/a.css', 15 './public/b.css', 16 ] 17 }, 18 transform: { 19 'bundle.js': code => UglifyJs.minify(code).code, 20 'bundle.css': code => new CleanCSS({/*options*/}).minify(code).styles, 21 } 22 }), 23 ], 24 module: { 25 }, 26}

参考リンク:
https://github.com/markshapiro/webpack-merge-and-include-globally

ご回答頂いた方、有難うございました。

投稿2019/06/22 01:45

Ison

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問