1、前提
1. 安裝了node.js。javascript
2. 安裝了npm。css
3. 檢查是否安裝成功:html
打開cmd,輸入node,沒有報「node不是內部或外部命令」表示安裝成功node.js。vue
打開cmd,輸入npm,沒有報「npm不是內部或外部命令」表示安裝成功node.js。java
4. node.js下載地址:http://pan.baidu.com/s/1eRW4hiU。用這個安裝包安裝會默認幫你安裝npm。node
注意:因爲webpack是一個基於node的項目,因此必須安裝node.js和npm
webpack
2、建立項目目錄
1. 在C盤目錄下面建立文件夾:firstvue(注意不能有大寫字母)。而後打開cmd,進入firstvue目錄。
可見當前是一個空目錄。
2. 新建文件,更名爲package.json。而後輸入以下內容,再執行命令:npm install。web
- {
- "name": "firstvue",
- "version": "1.0.0",
- "description": "vue+webapck",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
- "start": "webpack-dev-server --inline"
- },
- "dependencies": {
- "vue": "^1.0.18",
- "vue-router": "^0.7.13"
- },
- "devDependencies": {
- "autoprefixer-loader": "^2.0.0",
- "babel": "^6.3.13",
- "babel-core": "^6.3.21",
- "babel-loader": "^6.2.0",
- "babel-plugin-transform-runtime": "^6.3.13",
- "babel-preset-es2015": "^6.3.13",
- "babel-runtime": "^5.8.34",
- "css-loader": "^0.16.0",
- "file-loader": "^0.8.5",
- "html-loader": "^0.3.0",
- "node-sass": "^3.4.2",
- "sass-loader": "^3.2.0",
- "style-loader": "^0.12.3",
- "url-loader": "^0.5.6",
- "vue-html-loader": "^1.2.0",
- "vue-loader": "^7.2.0",
- "webpack": "^1.12.0",
- "webpack-dev-server": "^1.14.0"
- },
- "author": "xiaoming",
- "license": "MIT",
- "keywords": [
- "vue",
- "webpack"
- ]
- }
您惟一須要修改的是項目name和做者author。
安裝成功能夠看到當前目錄結構以下:(其中node_modules是自動生成的)
3. 新建文件,更名爲:webpack.config.js。這個是咱們的webpack配置文件,輸入內容:vue-router
- var path = require('path');
- // NodeJS中的Path對象,用於處理目錄的對象,提升開發效率。
- // 模塊導入
- module.exports = {
- // 入口文件地址,不須要寫完,會自動查找
- entry: './src/main',
- // 輸出
- output: {
- path: path.join(__dirname, './dist'),
- // 文件地址,使用絕對路徑形式
- filename: '[name].js',
- //[name]這裏是webpack提供的根據路口文件自動生成的名字
- publicPath: '/dist/'
- // 公共文件生成的地址
- },
- // 服務器配置相關,自動刷新!
- devServer: {
- historyApiFallback: true,
- hot: false,
- inline: true,
- grogress: true,
- },
- // 加載器
- module: {
- // 加載器
- loaders: [
- // 解析.vue文件
- { test: /\.vue$/, loader: 'vue' },
- // 轉化ES6的語法
- { test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
- // 編譯css並自動添加css前綴
- { test: /\.css$/, loader: 'style!css!autoprefixer'},
- //.scss 文件想要編譯,scss就須要這些東西!來編譯處理
- //install css-loader style-loader sass-loader node-sass --save-dev
- { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
- // 圖片轉化,小於8K自動轉化爲base64的編碼
- { test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192'},
- //html模板編譯?
- { test: /\.(html|tpl)$/, loader: 'html-loader' },
- ]
- },
- // .vue的配置。須要單獨出來配置,其實沒什麼必要--由於我刪了也沒保錯,不過這裏就留這把,由於官網文檔裏是能夠有單獨的配置的。
- vue: {
- loaders: {
- css: 'style!css!autoprefixer',
- }
- },
- // 轉化成es5的語法
- babel: {
- presets: ['es2015'],
- plugins: ['transform-runtime']
- },
- resolve: {
- // require時省略的擴展名,如:require('module') 不須要module.js
- extensions: ['', '.js', '.vue'],
- // 別名,能夠直接使用別名來表明設定的路徑以及其餘
- alias: {
- filter: path.join(__dirname, './src/filters'),
- components: path.join(__dirname, './src/components')
- }
- },
- // 開啓source-map,webpack有多種source-map,在官網文檔能夠查到
- devtool: 'eval-source-map'
- };
您只須要複製上面內容便可,不要修改任何文件。此時項目目錄以下:
4. 新建文件,更名爲:index.html。輸入以下內容:npm
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>webpack vue</title>
- </head>
- <body>
- <div id="app">
- <h1>Hello App!</h1>
- <p>
- <a v-link="{ path: '/login' }">登陸界面 </a>
- <a v-link="{ path: '/register' }">註冊界面</a>
- </p>
- <router-view></router-view>
- </div>
- <script src="dist/main.js"></script>
- </body>
- </html>
5. 新建一個空目錄,更名爲:dist。不用管它。項目會自動引用
6. 新建一個目錄,更名爲:src。而後在src目錄下新建一個文件,更名爲:main.js。內容以下:
- import Vue from "vue";
- import VueRouter from "vue-router";
- Vue.use(VueRouter);
-
-
- var App = Vue.extend({})
- var router = new VueRouter()
- router.map({
- '/login': {
- component: function (resolve) {
- require(['./components/login.vue'], resolve)
- }
- },
- '/register': {
- component: function (resolve) {
- require(['./components/register.vue'], resolve)
- }
- }
-
- })
-
- router.start(App, '#app')
7. 在src文件夾下創建目錄,更名爲:components。而後進入components,新建文件:login.vue和register.vue。內容以下:
login.vue
- <template>
- <div class="head">
- <input type = "text" value = "{{ title }}"></input>
- <input type = "submit" v-on:click="golist()" ></input>
- </div>
- </template>
-
- <script type="text/javascript">
- export default {
- data() {
- return {
- title: "這是登陸界面"
- }
- },
- methods :{
- golist () {//方法,定義路由跳轉,注意這裏必須使用this,否則報錯
- this.$route.router.go({path:"/register"});
- }
- }
- }
- </script>
register.vue
- <template>
- <div class="head">
- <h1>{{ title }}</h1>
- </div>
- </template>
-
- <script type="text/javascript">
- export default {
- data() {
- return {
- title: "這裏是註冊界面"
- }
- }
- }
- </script>
此時目錄結構以下圖:
至此,目錄結構建立完畢。
3、運行npm start
1. 只要運行npm start,運行成功就大功告成了。如圖:
2. 成功的話會出現下圖:
3. 打開瀏覽器,輸入:http://127.0.0.1:8080,便可看到以下圖:
點擊登陸會出現以下圖:
4、注意
1. 若是端口8080被佔用,npm start的時候會報錯的,這個時候只要把佔用8080端口的進程關閉便可。
您也能夠修改端口,輸入:webpack-dev-server --port 9090。便可修改端口號
2. vue參考資料:
http://cn.vuejs.org/guide/syntax.html
3. 個人項目資源地址:
http://pan.baidu.com/s/1c27fWC4