質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

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

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

CSS

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

Q&A

2回答

3339閲覧

WebpackでsassからCSSにコンパイルして外部ファイル化したい

tal

総合スコア20

JavaScript

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

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

CSS

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

0グッド

0クリップ

投稿2017/03/03 02:06

webpackを利用していて、スタイルはsassを利用しています。

現在は、head内にcssにコンパイルされたものが生成されているのですが、これを外部ファイル化したいと考えています。

しかし、1 JS 1CSSではなく、複数のsassをcssにコンパイルして、特定のディレクトリにCSSを外部ファイル化して生成する流れがわからず困っております。
ご教授ください。

ディレクトリ構成

- dist - bundle.js - index.html - webpack.config.js - src - resources - scss - base.scss - layout.scss

JavaScript

1const webpack = require('webpack'); 2const ExtractTextPlugin = require('extract-text-webpack-plugin'); 3const extractCSS = new ExtractTextPlugin('[name].css'); 4 5module.exports = { 6 entry: { 7 html: './src/index.html', 8 js: './src/index.js', 9 }, 10 output: { 11 path: __dirname + '/dist', 12 filename: 'bundle.js', 13 }, 14 plugins: [ 15 extractCSS, 16 ], 17 module: { 18 preLoaders: [ 19 { test: /.jsx?$/, exclude: /node_modules/, loader: 'eslint-loader' }, 20 ], 21 loaders: [ 22 { 23 test: /.css$/, 24 loader: ExtractTextPlugin.extract('style-loader', 'css-loader'), 25 }, 26 { 27 test: /.scss$/, 28 loader: ExtractTextPlugin.extract('style-loader', 29 'css-loader?sourceMap!sass-loader?outputStyle=expanded&sourceMap=true&sourceMapContents=true'), 30 }, 31 { test: /.js?$/, exclude: /node_modules/, loader: 'babel-loader' }, 32 ], 33 }, 34}; 35

参考リンク
http://geta6.hatenablog.com/entry/2016/01/27/193413
http://qiita.com/nicchi__1985/items/e30e73de6d8443909537
http://webpack.github.io/docs/stylesheets.html#separate-css-bundle:embed
https://github.com/kgsi/webpack-example-sass/blob/master/webpack.config.js

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

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

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

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

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

guest

回答2

0

おそらくその用途ではwebpackではなく、node-sassなどをつかって処理させるほうが向いていると思います。ふたつの処理はnpm scriptやgulpなどで連続実行させるのも一案です。

投稿2020/01/24 11:56

yuyuyu88180708

総合スコア26

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

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

0

上記の例だと、entryが1つしかないので、出力されるファイルも1つになっていると思われます。(name=index)

複数の入力を別々に出力したいのであれば、Webpackにどのようなファイル構成になっているのかを教える必要があります。その場合は、entryに、path.globで無理やり名前とファイルの辞書を作るか、手で対応関係を書いてあげる必要があります。

https://github.com/webpack/webpack/tree/master/examples/multiple-entry-points

CSSについてはやったことがないので下の例は完全に推測ですが、以下のようにしたらどうなりますか?

js

1entry: { 2 // 以下を追加 3 base: "src/resources/scss/base.scss", 4 layout: "src/resources/scss/layout.scss", 5}

投稿2017/03/22 20:17

shuntksh

総合スコア196

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問