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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Sass

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

Q&A

解決済

1回答

3447閲覧

webpackの設定 vueの単一ファイルコンポーネントにscss(sass)を導入する

holic

総合スコア134

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Sass

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

0グッド

2クリップ

投稿2018/12/20 07:46

前提・実現したいこと

webpackを使ってvue.jsの単一ファイルコンポーネントの設定を作っております。
vue.jsの単一ファイルコンポーネントの設定までは完了しました。
その状態からコンポーネント内でのstyle内でscssを使いたいと考えているのですが、うまくいきませんでした。

発生している問題・エラーメッセージ

コマンドプロンプトでのエラー文を掲載します。
単一ファイルコンポーネントのstyleの箇所で怒られているようです。

イメージ説明

該当のソースコード

###package.json
・単一ファイルコンポーネントとsassを設定するためのパッケージを配置しました。

{ "scripts": { "build": "webpack", "watch": "webpack --watch" }, "dependencies": { "axios": "^0.18.0", "node-sass": "^4.11.0", "sass-loader": "^7.1.0", "vue": "^2.5.19" }, "devDependencies": { "@babel/core": "^7.2.0", "@babel/polyfill": "^7.0.0", "@babel/preset-env": "^7.2.0", "babel-loader": "^8.0.4", "css-loader": "^2.0.0", "file-loader": "^2.0.0", "vue-loader": "^15.4.2", "vue-style-loader": "^4.1.2", "vue-template-compiler": "^2.5.19", "webpack": "^4.27.1", "webpack-cli": "^3.1.2" }, "private": true }

###webpack.config.json
・webpackの日数が浅いためにこのファイルの記述には自信が無いです。
ちなみに下記の設定でvue単一ファイルコンポーネントのバンドルには成功しました。
sassを読み込むための設定もここに追記が必要なのでしょうか。

const { VueLoaderPlugin } = require('vue-loader'); module.exports = { mode: 'development', module: { rules: [ { test: /.css$/, use: [ 'vue-style-loader', 'css-loader' ], }, { test: /.vue$/, loader: 'vue-loader' }, { test: /.js$/, loader: 'babel-loader', options: { presets: [ '@babel/preset-env', ] } }, ] }, resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' }, extensions: ['*', '.js', '.vue', '.json'] }, plugins: [ new VueLoaderPlugin(), ], };

#####単一ファイルコンポーネント

<template> <div class="app"> <h1> jyagarikogyagariko <span>112345678</span> </h1> <sub-component message="My Counter for Vue.js with Babel"></sub-component> </div> </template> <script> import SubComponent from "./SubComponent.vue"; export default { components: { SubComponent } }; </script> <style scoped lang="scss"> h1 { display: block; margin: 0 auto; padding: 1em; } .app { text-align: center; font-family: "Roboto", sans-serif; } </style>

お手数ではございますが、
webpackに詳しいお方がいらっしゃいましたら、ご教示をお願い致します。

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

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

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

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

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

guest

回答1

0

自己解決

【自己解決しました】

css設定を下記に変更で解決しました。
webpack.config.jsonを下記のように追記しました。
以下抜粋です。

{ test: /.css$/, use: [ 'vue-style-loader', 'css-loader' ], },

個の箇所を下記に書き換えました。

{ test: /.(scss$|css$)/, use: [ 'vue-style-loader', 'css-loader', 'sass-loader' ], },

投稿2018/12/20 08:12

編集2018/12/20 08:13
holic

総合スコア134

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問