Webpack 3(12)VUE-LOADER構成の簡単な説明をハンドルで教えます
17069 ワード
VUE-LOADER構成の概要
前注:
ドキュメントの全文は、ルートディレクトリのドキュメントの説明を参照してください.
よろしければ、本プロジェクトに「スター」と「Fork」を付けて引き続き注目してください.
疑義があればここをクリックして、「Issues」を送ってください.
DEMOアドレス
0、使用説明
まずVueを使わなければなりませんjs,さもないと本文の一部の内容が理解できない可能性がある
インストール:
npm install
実行:
// ( )
npm run dev
// ( )
npm run test
Vue-loaderを個別にインストールするには、次の手順に従います.
vue-template-compiler
が必要です.css-loader
と、セットのstyle-loader
が必要です.npm i --save vue
npm i --save vue-loader
npm i --save vue-template-compiler
npm i --save css-loader
npm i --save style-loader
以上のインストールにより、少なくとも使用を開始できます.
1、概要
簡単に言えば、
vue-loader
は.vue
ファイルを処理するものです.本明細書では、webpackにおけるvue−loaderの使用方法に加えて、
.vue
ファイルのいくつかの独自の使用方法も含まれる.しかし、
vue-loader
単独では問題を解決することはできません.そのため、他のものが必要です.【1】
vue-template-compiler
:彼の役割について、readme.md
の文書に紹介されている:This package can be used to pre-compile Vue 2.0 templates into render functions to avoid runtime-compilation overhead and CSP restrictions. You will only need it if you are writing build tools with very specific needs. In most cases you should be using vue-loader or vueify instead, both of which use this package internally.
つまり、Vueのテンプレートファイル(.vueを指すべき)をレンダリング関数にプリコンパイルし、実行時の再コンパイルによるパフォーマンスオーバーヘッドを回避します.
つまり
.vue
ファイルはjs実行時に解体され、使用すると多くの性能が消費されます.一般的には、単独で彼を使う必要はありません.
vue-loader
を使えばいいです(しかし、あなたは単独で彼をインストールする必要があります.vue-loader
をインストールするときはこれを持っていません).【2】cssの内容を解析するには、もちろん
css-loader
、およびセットのstyle-loader
が必要である.あなたの必要に応じて、もっと必要かもしれませんが、一般的には、この2つを単独でインストールすればいいだけです(
vue-laoder
にはインストールは付いていません).2、配置
2.1、デフォルトの構成
デフォルトの構成では、vue-loaderは基礎機能のみを備えています.
【1】
.vue
書類解体:.vue
ファイルを利用可能な3つの部分に分解し、パッケージ化された.js
ファイルに捨てる.【2】HMR機能:
npm run dev
を実行して使用することができる).scoped
を追加すればよい.
であれば、そのコンポーネント のスタイルはそのコンポーネントにのみ になる( は するコンポーネントに を し、cssセレクタにも セレクタを ける)./deep/
または>>>
のキーワードを し、このキーワードの のセレクタは、 な ドメインを します.このキーワードの ろにあるセレクタは、ローカル ドメインを しません. えば.app /deep/ .child
は、 のようにコンパイル.app[data-v-04c2046b] .child·· 【4】CSS Modules
のラベル のものを、module
の を けた 、vueコンポーネントの で、 を したクラス を することができます.の が です.
【1】es 6コードをes 5に する:
のes 6コードを することができる.created: function(){}
でもよいし、created()
でもよいし、 に できる)、babelを じてes 5のコードに にコンパイルされる.【3】cssプリプロセッサ
.vue
ファイルに するだけで、vue-loader
で することができ、webpackに する はありません.config.jsで します.【4】
postcss
vue-loader
のpackageを します.json、dependencies
にpostcss
があることがわかります.postcss-loader
ではなく、loaderはwebpack であり、postcssはless、sassなどに し、より なcssプロセッサ(プリプロセッサだけでなく)である.postcss-loader
の が な は、postcss-loader
を にインストールする はありません.2.2、 postcss
にpostcss-loaderについて したので、クリックして てください.
vue-loaderに css を
postcss
で する がある は、 です.1、まず
autoprefixer
を り け、npm install autoprefixer --save
2、 プラグインの 、postcss.config.jsには、 のように すればよい(
postcss-loader
メソッドを するのと じ)let autoprefixer = require('autoprefixer');
module.exports = {
plugins: [
autoprefixer({
browsers: [
//
"> 0.01%"
]Z
})
]
}
これで です. の は ありません.
2.3、 css
ここではlessを として いるが,SASSやその は している.
まず、
less-loader
をインストールします.npm i --save less-loader
その 、
.vue
ファイルでless を する がある
ラベルに、 lang="less"
を すればいいです.ただし、IDEとしてwebstormを している は、less でこれを することはできません.そのため、
type="text/less"
のプロパティを する があります.したがって、サンプルコード(ローカル ドメイン、less 、webstorm をサポート)が えられます.
<style scoped lang="less" type="text/less">
.child-component {
.text {
font-size: 30px;
font-weight: bold;
}
}
style>
2.4、 babel-loader
babelを するのは で、 に、 の は ありません.
まず が いたbabel-loaderという を して、babel-loaderと するものをインストールします.
その 、プロジェクトとディレクトリの に
.babelrc
ファイルを し、その はbabel-loader
の と じです.それ に、 の は ありません.
2.5、
を するには、file-loaderを する があります.url-loaderも する があります( に じてbase 64 を する はありません).
この2つを に する があると しましょう. は に です.
まず、url-loaderおよびfile-loaderを して、
file-loader
およびurl-loader
をインストールします.に、ウェブパックに する を する.config.js、いいですよ.
{
test: /\.(png|jpg|jpeg|gif)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 8192,
mimetype: 'image/png',
name: 'img/[hash].[ext]'
}
}
]
}
2.6、
のいくつかを にとると、vue-loader は な を とせず、
.vue
ファイルに のloader
の を く する もないことはご じでしょう.する
loader
をインストールし、loaderを するだけです.つまり、
loader
を する は、ほとんどがインストールのみで、 の は ありません.いくつかのloaderを で する がある は、vue-loader を しなくてもいいです.
サイトのこの loadersを すると、 です.
3、vue-loader
3.1、CSS Modules
に えば、モジュール cssです.
のcss-loaderという「2.8、modulesなど」を たら、css-loaderのこの がどのようにここで されたのかを できるかもしれません.
たとえば、
.vue
ファイルに のラベルを けた .
<style module>
.test {
border: 2px solid gold;
}
style>
<style module="foo">
.bar {
position: relative;
animation: move 2s linear infinite;
}
@keyframes move {
0% {
left: 0;
}
50% {
left: 100px;
}
100% {
left: 0;
}
}
style>
コンパイルすると、コードは のようになります.
<style type="text/css">
._1MwiT3GNpEBkInFbvenNqf_1 {
border: 2px solid gold;
}
style>
<style type="text/css">
._2zuIotdSd4Qw4JyIOKek2x_2 {
position: relative;
animation: _1Uijvgp95FT2K79a3BqAeg_2 2s linear infinite;
}
@keyframes _1Uijvgp95FT2K79a3BqAeg_2 {
0% {
left: 0;
}
50% {
left: 100px;
}
100% {
left: 0;
}
}
style>
つまり、modulesプロパティを けると、 のスタイル が され、 で の が されます.
は のとおりです.
【1】
module
のみの
タグ のclassクラス は、$style.
によって され、 えば、$style.test
;【2】
module
の は、module="foo"
のように され、module .
のように、foo.bar
によって される.この は、 するコンポーネントにおいて、
this.$style.test
またはfoo.bar
によって することができ、console.log(this.$style); // {test: "_1MwiT3GNpEBkInFbvenNqf_1"}
4、
4.1、 vue
、 に しない.コンソールを します. のエラーが しました.
You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
はこの Vue 2.0リットル (keng)の を することができる.
ここで にまとめると、デフォルトで された
Vue
は、vue.js
ではなくvue.common.js
であり、 はランタイム で される.は です.
【 1】 の :
された :
import Vue from 'vue/dist/vue.js'
【 2】 の :Webpackでconfig.jsに を するには:
resolve: {
alias: {
'Vue': 'vue/dist/vue.js'
}
}
を する 、aliasプロパティのkeyは、 した と を させる があります.
つまりここでは の の
Vue
ですが、 も の のimport Vue from 'Vue'
であるべきです.4.2、
に、
child.vue
を する 、 はimport child from './child.vue'
を して されるでは、 を して
import child from './child'
と きたい は、どうすればいいのでしょうか.:
Webpackを します.config.jsのresolveプロパティ( :
//
resolve: {
extensions: ['.js', '.vue'],
//
なしで
.vue
の のファイルを することができます. じ があるが なる がある は、 があります.