webpack vue 配置


vue-loader
  1.)首先創建項目目錄

    --vue-loader文件夾
    |-index.html    入口文件
    |-main.js      入口文件
    |-App.vue      Vue文件
    |-package.json    工程文件
    |-webpack.config.js webpack  配置文件
  2.)基於webpack模塊化開發ES6
    關於項目前准備工作
      ①、建一個文件夾,文件夾就是你的項目名稱,然后把必須的問價加在其中
        |-index.html
        |-main.js
        |-App.vue
        |-package.json(生成方法,在問價夾中打開命令行工具,輸入命令:npm init --yes)
        |-webpack.config.js

      ②、在index.html中,在body中添加一個標簽(組件),例如:<App></App>(官方建議大寫開頭)。
      ③、配置webpack,
        module.exports={
          entry:'./main.js',    //規定入口(官方推薦名字:main.js)
          output:{
            path:__dirname,   //得到當前的目錄,是把當前路徑變為絕對路徑
            filename:'bundle.js'    //出口文件(官方推薦名字:bundle.js)
            }
          }
      ·在index.html中引入bundle.js
      ·webpack需要下載的模塊 webpack 、webpack-dev-server

      ·修改package.json的scripts的參數為
        "script":{
          "dev":"webpack-dev-server --inline --hot"   //這個就是我們保存完修改的代碼后,瀏覽器自動刷新熱加載,如果端口被占用,可以在后面加 --port 8801(端口號自己定義)
         }

    ④、.vue文件由三部分組成
      <template></tenplate> //放html代碼
      <script></scritp> //放js代碼
      <style></style> //放css代碼
      想要把這些代碼轉譯成正常的html、css、js代碼,需要配置下載一系列模塊(--save-dev可以默認配置你的配置文件)
      配置這些文件需要在webpack.config.js中添加一個
        module:{
          loaders:{
            {test:/|.vue$/,loader:'vue'} //以.vue結尾的文件用vue-loader來轉譯
           }
        }
      vue-loader 、vue-style-loader 、vue-html-loader 、vue-hot-reload-api 、css-loader(這些是用來編譯css,html,js代碼的)
      babel-core 、babel-loader 、babel-plugin-transform-runtime 、babel-preset-es2015 、babel-runtime (這些是必備的配置)
    ⑤、編輯入口文件main.js文件,import App from './App.vue',默認進去打開App.vue

一、項目結構圖

二、具體代碼

  index.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <app></app>    <!-- 組件名稱 -->
 9     <script src="build.js"></script>
10 </body>
11 </html>

  main.js

1 import Vue from 'vue'
2 import App from './App.vue'
3 
4 new Vue({
5     el:'body',
6     components:{
7         app:App
8     }
9 });

  package.json

 1 {
 2   "name": "vue-loader-demo",
 3   "version": "1.0.0",
 4   "description": "",
 5   "main": "main.js",
 6   "scripts": {
 7     "dev": "webpack-dev-server --inline --hot --port 8082"
 8   },
 9   "keywords": [],
10   "author": "",
11   "license": "ISC",
12   "devDependencies": {
13     "babel-core": "^6.17.0",
14     "babel-loader": "^6.2.5",
15     "babel-plugin-transform-runtime": "^6.15.0",
16     "babel-preset-es2015": "^6.16.0",
17     "babel-runtime": "^6.11.6",
18     "css-loader": "^0.25.0",
19     "vue-hot-reload-api": "^1.3.2",
20     "vue-html-loader": "^1.2.3",
21     "vue-loader": "^8.5.4",
22     "vue-style-loader": "^1.0.0",
23     "webpack":"^1.13.3",
24     "webpack-dev-server":"^1.16.2"
25   },
26   "dependencies": {
27     "vue": "^1.0.28"
28   }
29 }

  App.vue

<template>
    <h1>welcome Vue</h1>
    <h2 @click="change">{{msg}}</h2>
    <my-menu></my-menu>
</template>
<script>
    import News from './components/News.vue'  //新組建的鏈接位置

    export default{
        data(){
            return {
                msg:'welcome to sunsanfeng home'
            }
        },
        methods:{
            change(){
                this.msg='是你改變了我'
            }
        },
        components:{
            'my-menu':News  //又定義了一個新的 組件
        }    
    }
</script>
<style>
    body{
        background: #ccc
    }
</style>

  webpack-config.js

 1 module.exports={
 2     entry:'./main.js',
 3 
 4     output:{
 5         path:__dirname,
 6         filename:'build.js'
 7     },
 8 
 9     module:{
10         loaders:[
11             {test:/\.vue$/, loader:'vue'}, //規定以.vue結尾的文件,用vue-loader來解析
12             {test:/\.js$/, loader:'babel', exclude:/node_modules/} //以.js結尾的文件用vue-hot-reload-api解析,除了node_nodules文件夾里的文件
13         ]
14     },
15     babel:{
16         presets:['es2015'],
17         plugins:['transform-runtime']
18     }
19 };

以上代碼中的注釋在項目中會報錯,粘走時不要刪掉注釋,對於node_nodules里面的配置,我們直接npm install一下就可以了

demo下載地址:  http://pan.baidu.com/s/1qYfm0VE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM