關於自己配置有關webpack.config.js和vue項目搭建相關步驟


  2 
  3 ## Webpack的配置和使用
  4 ### 安裝
  5 1. 全局安裝
  6 ```
  7 npm install webpack -g
  8 ```
  9 2. 本地安裝
 10 ```
 11 npm install webpack -D
 12 ```
 13 ### 使用
 14 #### 直接通過命令參數來執行
 15 1. 如果是全局安裝的
 16 ```
 17 webpack 入口文件 出口文件
 18 ```
 19 2. 如果是本地安裝的
 20     2.1 先在package.json的script標簽中添加一條命令(就和全局的命令一模一樣)
 21     2.2 通過npm run 命令名 來執行命令
 22 
 23 #### 通過配置文件來執行
 24 如果是使用的配置文件,那么在使用webpack的命令的時候,就不需要再傳遞參數了!
 25 
 26 配置文件名為 webpack.config.js, 這個文件一般被放在網站的根目錄下
 27 
 28 webpack.config.js是一個node.js的模塊,所以里面的代碼,就是nodejs代碼,需要通過nodejs模塊化的方式,將配置對象進行導出!
 29 
 30 基礎配置項
 31 ```js
 32 var path = require("path")
 33 
 34 module.exports = {
 35     entry: path.join(__dirname, "入口文件路徑"),
 36     output: {
 37         path: path.join(__dirname, "dist"),
 38         filename: "bundel.js"
 39     }
 40 }
 41 
 42 ```
 43 
 44 ### 使用webpack打包別的類型的文件
 45 webpack默認支持的文件類型,只有js文件,如果在項目中出現了其他類型的文件,那么webpack本身是無法進行處理的,所以我們需要為每一個類型的文件,單獨指定一個加載器(loader)
 46 
 47 #### css
 48 在webpack的項目中,如果要使用css文件,我們可以將css文件當做一個模塊,使用import的方式引入到js當中,最終webpack會將css文件中的內容,一起打包到最終的js文件中,也可以在頁面中生效
 49 
 50 要打包css文件,就需要給css文件配置loader,需要兩個loader: style-loader css-loader
 51 
 52 1. 安裝相應的loader
 53 ```
 54 npm install style-loader css-loader -D
 55 ```
 56 2. 在webpack.config.js中配置css文件對應的loader
 57 ```js
 58 var path = require("path")
 59 
 60 module.exports = {
 61     entry: path.join(__dirname, "入口文件路徑"),
 62     output: {
 63         path: path.join(__dirname, "dist"),
 64         filename: "bundel.js"
 65     },
 66     //module屬性中就可以進行loader的配置
 67     module: {
 68         rules: [
 69             {
 70                 test: /\.css$/,
 71                 //use中放的就是加載器的名稱,要注意,調用的順序是從后向前的
 72                 use: ["style-loader", "css-loader"]
 73             }
 74         ]
 75     }
 76 }
 77 ```
 78 
 79 #### less sass
 80 less需要的loader:  style-loader css-loader less-loader        依賴項: less
 81 sass需要的loader:  style-loader css-loader sass-loader        依賴項: node-sass
 82 
 83 1. 安裝相應的loader
 84 
 85     1.1 less-loader:
 86     ```
 87         npm install less-loader less -D
 88     ```
 89     1.2 sass-loader
 90     ```
 91         npm install sass-loader node-sass -D
 92     ```
 93 2. 配置加載器
 94 ```js
 95 var path = require("path")
 96 
 97 module.exports = {
 98     entry: path.join(__dirname, "入口文件路徑"),
 99     output: {
100         path: path.join(__dirname, "dist"),
101         filename: "bundel.js"
102     },
103     //module屬性中就可以進行loader的配置
104     module: {
105         rules: [
106             {
107                 test: /\.css$/,
108                 //use中放的就是加載器的名稱,要注意,調用的順序是從后向前的
109                 use: ["style-loader", "css-loader"]
110             },
111             {
112                 //less文件
113                 test: /\.less$/,
114                 use: ["style-loader", "css-loader", "less-loader"]
115             },
116             {
117                 //sass文件
118                 test:  /\.sass$/,
119                 use: ["style-loader", "css-loader", "sass-loader"]
120             }
121         ]
122     }
123 }
124 ```
125 
126 #### 圖片 字體 打包
127 圖片需要的loader: url-loader    依賴項: file-loader
128 字體需要的loader: url-loader
129 
130 1. 安裝
131 ```
132 npm install url-loader file-loader -D
133 ```
134 2. 配置
135 ```js
136 var path = require("path")
137 
138 module.exports = {
139     entry: path.join(__dirname, "入口文件路徑"),
140     output: {
141         path: path.join(__dirname, "dist"),
142         filename: "bundel.js"
143     },
144     //module屬性中就可以進行loader的配置
145     module: {
146         rules: [
147             {
148                 test: /\.css$/,
149                 //use中放的就是加載器的名稱,要注意,調用的順序是從后向前的
150                 use: ["style-loader", "css-loader"]
151             },
152             {
153                 //less文件
154                 test: /\.less$/,
155                 use: ["style-loader", "css-loader", "less-loader"]
156             },
157             {
158                 //sass文件
159                 test:  /\.sass$/,
160                 use: ["style-loader", "css-loader", "sass-loader"]
161             },
162             {
163                 //圖片文件
164                 test:  /\.(jpg|gif|png|jpeg|svg|bmp)$/,
165                 use: [{
166                     loader: "url-loader",
167                     options: {
168                         //如果圖片超過下面這個數據所標注的大小,那么圖片將不會被轉換成base64的格式,直接會將圖片文件扔到dist目錄里
169                         limit: 1024 * 50
170                     }
171                 }]
172             },
173             {
174                 //字體文件
175                 test: /\.(woff|woff2|eot|ttf)$/,
176                 use: ["url-loader"]
177             }
178         ]
179     }
180 }
181 ```
182 
183 ### ES6 代碼打包
184 用到的loader: babel-loader    依賴項: babel-core
185 用到轉碼規則: babel-preset-env
186 1. 安裝
187 ```
188 npm install babel-loader babel-core -D
189 ```
190 2. 配置
191     2.1 創建一個.babelrc 用來指定轉碼的規則
192     ```js
193     {
194         presets: [
195             "env"
196         ]
197     }
198     ```
199     2.2 webpack.config.js配置加載器
200 
201     ```js
202     var path = require("path")
203 
204     module.exports = {
205         entry: path.join(__dirname, "入口文件路徑"),
206         output: {
207             path: path.join(__dirname, "dist"),
208             filename: "bundel.js"
209         },
210         //module屬性中就可以進行loader的配置
211         module: {
212             rules: [
213                 {
214                     test: /\.css$/,
215                     //use中放的就是加載器的名稱,要注意,調用的順序是從后向前的
216                     use: ["style-loader", "css-loader"]
217                 },
218                 {
219                     //less文件
220                     test: /\.less$/,
221                     use: ["style-loader", "css-loader", "less-loader"]
222                 },
223                 {
224                     //sass文件
225                     test:  /\.sass$/,
226                     use: ["style-loader", "css-loader", "sass-loader"]
227                 },
228                 {
229                     //圖片文件
230                     test:  /\.(jpg|gif|png|jpeg|svg|bmp)$/,
231                     use: [{
232                         loader: "url-loader",
233                         options: {
234                             //如果圖片超過下面這個數據所標注的大小,那么圖片將不會被轉換成base64的格式,直接會將圖片文件扔到dist目錄里
235                             limit: 1024 * 50
236                         }
237                     }]
238                 },
239                 {
240                     //字體文件
241                     test: /\.(woff|woff2|eot|ttf)$/,
242                     use: ["url-loader"]
243                 },
244                 {
245                     //ES6
246                     test: /\.js$/,
247                     //排除node_modules中的內容
248                     exclude: /node_modules/,
249                     use: ["babel-loader"]
250                 }
251             ]
252         }
253     }
254     ```
255 ### html-webpack-plugin的使用
256 作用: 將src目錄下的index.html作為模板,每次在打包的時候,都會將其復制到dist目錄下,並且自動為其引入bundle.js
257 
258 1. 安裝
259 ```
260 npm install html-webpack-plugin -D
261 ```
262 2. 配置webpack.config.js
263 ```js
264 var HtmlWebpackPlugin = require("html-webpack-plugin")
265 var path = require("path")
266 
267 module.exports = {
268     entry: path.join(__dirname, "入口文件路徑"),
269     output: {
270         path: path.join(__dirname, "dist"),
271         filename: "bundel.js"
272     },
273     plugins:[
274         new HtmlWebpackPlugin({
275             template: path.join(__dirname, "src/index.html")
276         })
277     ]
278 }
279 
280 ```
281 
282 ## webpack-dev-server的使用
283 如果沒有這個東西,那么每次在修改代碼之后,都需要重新進行打包,才能看到效果!
284 
285 webpack-dev-server可以啟動一個簡易的http服務器,當代碼發生改變的時候,實時的進行打包並且刷新頁面顯示效果! 這個東西只會打包更新了的內容,並不會將整個項目完整的打包,所以效率會比較高,而且它打包的內容都是直接放在內存里面的,所以訪問速率也會非常快
286 
287 1. 安裝
288 ```
289 npm install webpack-dev-server -D
290 ```
291 
292 2. 使用
293 
294     2.1 直接給命令傳參
295     ```
296     webpack-dev-server --port 9000 --contentBase ./src --hot
297     ```
298     2.2 在webpack.config.js中進行配置
299     ```js
300     var path = require("path");
301     
302     //如果使用webpack.config方式進行配置,那么必須有這個包引入
303     var webpack = reuqire("webpack");
304 
305     module.exports = {
306         entry: path.join(__dirname, "入口文件路徑"),
307         output: {
308             path: path.join(__dirname, "dist"),
309             filename: "bundel.js"
310         },
311         devServer: {
312             port: 9999,
313             contentBase: "./src",
314             hot: true
315         },
316         plugins:[
317             //這邊是給dev-server設置一個插件,如果沒有這個插件則熱更新會報錯
318             new webpack.HotModuleReplacementPlugin()
319         ]
320     }
321 
322     ```
323 
324 ## babel-cli的使用
325 1. 安裝
326 ```
327 npm install babel-cli -g
328 npm install babel-preset-env
329 ```
330 2. 配置
331 創建.babelrc文件
332 ```
333 {
334     presets: [
335         "env"
336     ]
337 }
338 ```
339 3. 使用
340 ```
341 babel 要轉換的文件的路徑 --out-file 輸出的文件的路徑
342 ```
343 
344 ## 單文件組件
345 就是將組件相關的內容(HTML JS CSS)全部放到了一個.vue文件當中
346 
347 ```html
348 <template>
349     <div>
350         //這里就是組件的html部分也就是所謂的模板
351     </div>
352 </template>
353 
354 <script>
355     export default {
356         data(){},
357         filters: {},
358         components: {},
359         watch: {},
360         directives: {},
361         created(){}
362     }
363 </script>
364 
365 scoped屬性標志着這個style標簽中的css樣式是只對當前組件有效!
366 <style scoped>
367 </style>
368 ```
369 
370 ## Vue-Cli
371 這是一個可以快速生成一個項目基本結構的vue工具
372 
373 1. 安裝
374 ```
375 npm install vue-cli -g
376 ```
377 2. 使用
378 ```
379 vue init webpack 項目名稱
380 ```
381 
382 ## 在項目模板中寫代碼
383 1. 創建組件!
384 2. 配置路由!
385 
386 項目模板的獲取兩種方式:
387 1. 自己寫的模板
388     https://github.com/avakpan/vue-template
389     
390 2. vue-cli生成模板

     在使用vue框架的時候對應的webpack.config.js的配置,利用babel轉換ES6為ES5的相關配置,以及下載vue項目基本結構的地址,通過vue-cli搭建vue項目基本結構.


免責聲明!

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



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