vue工程创建

1. 第一步:创建目录文件夹

2. 第二步:下载依赖包package.json

    $ npm install  (这里的依赖包是常用的一些webpack依赖包,其中有些在此工程中没用上,可以删除)

{
  "name": "webpackTOOvue",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "dev": "webpack-dev-server --inline --hot --open --port 5008"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^6.4.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-es2015": "^6.24.1",
    "css-loader": "^1.0.0",
    "file-loader": "^0.11.1",
    "html-webpack-plugin": "^2.30.1",
    "less": "^2.7.2",
    "less-loader": "^4.1.0",
    "node-sass": "^4.5.2",
    "sass-loader": "^6.0.3",
    "style-loader": "^0.23.0",
    "url-loader": "^0.5.8",
    "vue-loader": "^11.3.4",
    "vue-template-compiler": "^2.2.6",
    "webpack": "^1.14.0",
    "webpack-dev-server": "^1.16.0"
  },
  "dependencies": {
    "vue": "^2.2.6",
    "vue-router": "^2.3.1"
  }
}

3. 第三步:配置webpack.config.js文件

var htmlwp=require('html-webpack-plugin');
module.exports={
    entry : './src/02-main.js' , // 这是entry文件
    output : {
        path: __dirname+'/dist', //__dirname当前文件夹的绝对路径
        filename:'build.js'
    },
    module:{
        loaders:[ 
            {
                test:/\.css$/,  //所有.css结尾的文件都被loader处理
                loader:'style-loader!css-loader' //从右边依次向左
            },
            {
                test:/\.scss$/,  //所有.css结尾的文件都被loader处理
                loader:'style-loader!css-loader!sass-loader' //从右边依次向左
            }, 
            {
                test:/\.less$/,  //所有.css结尾的文件都被loader处理
                loader:'style-loader!css-loader!less-loader' //从右边依次向左
            }, 
            {
                test:/\.(png|jpg|gif)$/,  //所有.css结尾的文件都被loader处理
                loader:'url-loader?limit=40000' //小于40K用64base打包到build.js
            },
            {
                test : /\.js$/, 
              loader : 'babel-loader',
                exclude : /node_modules/
            },
            {
                test : /\.vue$/, 
              loader : 'vue-loader' 
            }
        ]
    }, 
    babel:{   
      presets : ['es2015'], 
      plugins  : ['transform-runtime'] 
    },
    plugins:[
        new htmlwp({
            title:'首页',
            filename:'index.html',  //这是plugins的一个缓存文件,不用自己创建,修改,写上就可以了
            template:'index2.html'  //这是template模板文件
        })
    ]
}

4.  第四步:创建template模板文件

//文件名为index2.html
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index2</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> /*移动端的视口,不是移动端可以不写*/        
</head>
<body>
    <div id="app">  /*这里一定要写一个id,将对应主js文件的连接*/
    </div>
</body>
</html> 

5. 第五步:创建主vue文件

/*文件名为:App.vue*/
<template>
    <span class="red">{{msg}}</span>
</template>
<script>
    export default{
        /*负责导出.vue这个组件对象*/
        data(){  
            return{
                msg:'hell vf'
            }
        },
        methods:{
        },
        created(){
        }
    }
</script>
<style scoped>
    /* scoped 表示本样式只在本页有效 */
    .red{
        color: red;
    }
</style>

6. 第六步:创建主js文件

//文件名:02-main.js
import Vue from 'vue';//导入vue核心包
import App from './App.vue';//导入App.vue的vue对象
new Vue({
    el:'#app',
    //render:function(create){create()} //es5写法
    render:c=>c(App) //es6写法
});

7.  第七步:运行vue项目

     $ npm run dev  (这里不用再$webpack ,直接运行该命令,webpack插件包html-webpack-plugin会自动带入编译好的dist文件下的js文件,形成<script>脚本插入index2.html文件中)

8. 相关运行报错,或调试问题

   若App.vue中的内容未渲染到index2.html页面中

   可能的问题:

  • 主js文件 --> 02-main.js 中 import Vue from 'vue';   new Vue({ }); 标记处不一样
  • webpack.config.js文件 --> 没有导入 var htmlwp=require('html-webpack-plugin'); 
  • webpack.config.js文件 -->
      plugins:[  //忘记写s
          new htmlwp({
              title:'首页',
              filename:'index.html',  //这是plugins的一个缓存文件,不用自己创建,修改,写上就可以了
              template:'index2.html'  //这是template模板文件  //模板文件名对不上
          })
      ]

 。。

猜你喜欢

转载自www.cnblogs.com/cjuan/p/9706069.html
今日推荐