Vue.js lessを使いwebpackでビルドする
.vue
ファイル(単一ファイルコンポーネント)のstyle
をcss
ではなくless
で実装して、webpack
でビルドをします。
sass
でも以下記事のless
の文言がsass
に置き換わるくらいでやり方は基本的には同じです。
パッケージのインストール
以下のパッケージが必要なのでインストールをします。
- less
- less-loader
- style-loader
- css-loader
$ npm install --save-dev less less-loader style-loader css-loader
webpack.config.jsの設定
webpack-dev-serverで開発サーバーを起動するで紹介したwebpack.config.js
に設定を追記します。
vue-loader
のオプションにless
のloader
を追加します。
webpack.config.js
// 一部抜粋
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
js: 'babel-loader',
less: ['style-loader', 'css-loader', 'less-loader']
}
}
}
]
},
vueファイルの編集
style
タグにlang="less"
を追加するとless
として読み込まれます。
App.vue
<template>
<div class="message">
{{ message }}
</div>
</template>
<style lang="less" scoped>
@red: #ff0000;
.message {
color: @red;
}
</style>
<script>
export default {
data () {
return {
message: 'hello hmr'
};
}
};
</script>
実行
ビルドをすると内部的にless
がコンパイルされてスタイルが適用されます。
外部のless
ファイルを読み込む方法をVue.js lessで外部のlessファイルをImportするで紹介します。