1. 程式人生 > >使用webpack、vue來開發一個todo項目

使用webpack、vue來開發一個todo項目

行處理 save source 格式 添加 uil spl ros .com

Greta有話說:
我是從有道雲筆記中粘貼過來的,圖片不顯示,
請點擊鏈接,查看完整筆記:點我!有道雲筆記

part1、開始,簡單的配置

一、準備工作

webpack

webpack-dev-server

webpack打包優化:

(1)、網絡優化,減少http請求

(2)、壓縮靜態資源

(3)、使用瀏覽器長緩存,盡量減少網絡流量

二、思考:如何體驗前端價值?

數據緩存、考慮前端工程化概念(es6、less)

網絡優化:加快http請求速度、如何緩存http請求

API定制

nodejs層:轉發、數據處理

註意:不要花費過多時間去做業務處理

定制和修改vue-cli配置

三、開始demo

1、webpack搭建工程

2、實現todo應用

四、簡單使用webpack --config webpack.config.js

1、使用當前目錄下的webpack,而不是全局webpack

2、添加處理.vue文件類型的loader,

原因是:webpack默認只能處理.js文件,ES5語法

3、添加vue-loader之後還是報錯

解決辦法如下:添加VueLoaderPlugin

4、style-loader的作用,是將css文件轉換成一個style的dom節點,插入html文件中

5、使用less文件

npm i less less-loader --save-dev

五、使用

webpack-dev-server,更改配置

1、process.env

"build": "cross-env NODE_ENV=production webpack --config webpack.config.js"

當用戶使用 npm run build命令時,定義變量 NODE_ENV 值為 production ,

webpack.config.js文件中,通過process.env.NODE_ENV 得到。

cross-env:實現跨平臺

2、webpack.DefinePlugin

plugins: [

new webpack.DefinePlugin({

// 利於打包的時候,使用vue源碼的開發版本還是生產版本

‘process.env‘: {

NODE_ENV: isDev ? ‘"development"‘ : ‘"production"‘

}

}),

new VueLoaderPlugin(),

// 生成一個index.html,將代碼插入進去,確保可以訪問

new HtmWebpackPlugin()

],

3、 使用webpack-dev-server進行簡單的配置

1)devtool:用於調試

2)hot:瀏覽器監聽到項目文件變化後,不刷新頁面,只刷新組件進行更新

更新組件代碼,不刷新頁面,只刷新更新的組件的那部分視圖,同時添加兩個webpack內置plugin:HotModuleReplacementPlugin、NoEmitOnErrorsPlugin

config.devServer.hot = true

config.plugins.push(

new webpack.HotModuleReplacementPlugin(),

// NoEmitOnErrorsPlugin:減少一些不必要的提示

new webpack.NoEmitOnErrorsPlugin()

)

3)extract-text-webpack-plugin: css文件單獨打包出來

默認會將css文件打包在bundle.js文件中,這樣bundle.js文件體積過大,我們將css文件單獨打包出來

代碼如下:

config.module.rules.push({

test: /\.less$/,

use: ExtractTextWebpackPlugin.extract({

fallback: ‘style-loader‘,

use: [

‘css-loader‘,

{

loader: ‘postcss-loader‘,

options: {

sourceMap: true

}

},

‘less-loader‘

]

})

})

config.plugins.push(

// contentHash: 內容hash

new ExtractTextWebpackPlugin(‘styles.[chunkhash:8].css‘)

)

報錯a:hooks

解決辦法:npm i --save-dev extract-text-webpack-plugin@next

報錯b:

contenthash

解決辦法: 使用[chunkhash:8]

4)optimization的splitChunks、runtimeChunk: 將第三方依賴的包、webpack的源碼:單獨打包至一個文件

代碼如下:

optimization: {

splitChunks: {

chunks: "all"

},

runtimeChunk: true

}

part2: vue

一、vue2的核心知識

1)數據綁定

2)vue文件格式

3)render方法

二、api重點

1)生命周期方法

2)computed:實時計算 姓+名

part3: webpack的詳細說明

一、loader

二、plugin

1)使用extract-text-webpack-plugin 進行處理,將css單獨打包至一個文件

三、webpack中使用的一些變量

1)hash、contenthash、chunkhash

hash值打包後只生成一個,但是chunkhash是不同的值

使用webpack、vue來開發一個todo項目