亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何學習webpack 文檔,目前階段表示看不懂??!

怎么辦呢??????
查看完整描述

1 回答

已采納
?
new_object_

TA貢獻55條經驗 獲得超117個贊

你首先得知道webpack是干什么的?

長話短說,webpack是個自動化構建工具,可以用來對js進行分析,對項目進行自動化構建和打包。

那你需要使用webpack來干什么呢?

使用webpack最原始的目的就是對js進行編譯,編譯模塊引用、vue、react、es6等語法,將這些瀏覽器無法識別的東西組織成瀏覽器能夠讀懂的形式。

那你需要怎樣使用webpack達到這一目的呢?

不妨寫一個最簡單的js文件編譯,先創建三個文件,代碼如下:

index.html

<!DOCTYPE?html>
<html>
<head>
????<title>compile?test</title>
</head>
<body>
????<script?type="text/javascript"?src="index.js"></script>
</body>
</html>

index.js

var?add?=?require('./lib.js');

var?result?=?add(1,?2);
alert(result);

lib.js

function?add(a,?b)?{
????return?a?+?b;
}
export?default?add;

代碼很簡單,寫了一個加法函數,通過調用加法函數的調用輸出1+2的結果。但是其中使用到了模塊的引用,目前在瀏覽器中是無法原生支持的??梢試L試打開index頁面,無任何反應 ,打開控制臺,應該會看到“require is not defined”的報錯信息。那么現在就輪到webpack出場了。

webpack的安裝這里就不贅述了,直接上配置代碼:

require('webpack');

module.exports?=?{
????entry:?__dirname?+?'/app.js',
????output:?{
????????path:?__dirname,
????????filename:?'main.js',
????},
}

其中 __dirname是node中的一個全局變量,用來表示當前的文件夾絕對路徑。(有興趣可以在控制臺將其輸出一下)。

這里是最簡單的webpack編譯,用到了兩個api,一個entry,入口,即告知webpack編譯哪些文件,另外一個是output,告知webpack,編譯后的文件放哪里去,叫什么名字。

配置完成,控制臺輸入命令,進行編譯。

webpack

編譯完成,會看到文件夾下多出一個main.js的文件,這就是編譯后的文件。修改index.html,引用編譯后的main.js,然后打開頁面你就能看到結果為3的彈窗,這就是webpack最簡單的使用。


知道了如何怎樣開始使用webpack,后續的只是在這之上進行擴展,給它加上一些額外的功能。如:

resolve:?{
????alias:[
????????{
????????????'vue':?'vue/dist/vue.esm.js',
????????},
????],
}

給文件取一個別名,使webpack在編譯過程中遇到的vue模塊自動使用'vue/dist/vue.exm.js'來替換。即我在項目中此兩句等價:

import?Vue?from?'vue';
import?Vue?from?'vue/dist/vue.esm.js';

再如,我們需要對ES6文件進行編譯,將ES6中的箭頭函數、class等轉譯成瀏覽器能夠識別的ES5語法:

module:?{
????loaders:?[
????????{
???????????test:?/\.js$/,
???????????loader:?'js-loader',
????????},
????],
}

另外還有plugins、webpack server什么的你可以一點一點去試,需要的時候就去查看文檔,把它們加上去。


注:強烈建議養成自己閱讀文檔的能力

查看完整回答
1 反對 回復 2017-11-07
  • 1 回答
  • 0 關注
  • 2462 瀏覽
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號