1. 程式人生 > >【node.js】webapck --打包工具①

【node.js】webapck --打包工具①

前言:nodeJS的一大優點之一就是js檔案的模組化。每一個js檔案都可以是一個模組,這意味這我們在弄大型專案的時候,不再需要定義大量的全域性變量了。

一、js檔案的弊端

如果a.js檔案要訪問b.js裡定義的變數的話,那b.js定義的變數得定義在全域性,那樣就會造成全域性環境的汙染。(如果全域性定義的變數有重名的,會造成很大困擾)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>test</title>
<script src="a.js"></script>
<script src="d.js"></script>
<script>
console.log(str + '--1');
a();
b();
</script>
</head>

<body>
</body>
</html>
// a.js
function a(){
	console.log(str+' --a');
}
//b.js
var str = 'hello world';
function b(){
	console.log(str + ' --b');
}


二、node模組概念

在一個模組(一個檔案)中定義的變數,其作用域範圍是當前模組,外部不能夠直接的訪問。如果想讓一個模組能夠訪問另一個模組中定義的變數,可以通過module.exports對外提供訪問。

//a.js
var str = require('./b').str;
console.log(str);
//b.js
var str = 'hello world';
module.exports.str = str;     //對外提供訪問

在node的環境下執行a.js,會成功輸出在b.js中定義的變數str,而不會說有全域性環境汙染的問題。

然後問題來了,這樣的寫法只能node上執行,無法運用到瀏覽器中。要怎麼才能運用到瀏覽器中呢?這就運用到了webpack打包工具了。

三、webpack的使用

1、webpack安裝到全域性下的命令

①、安裝webpack

       在cmd終端輸入

npm install webpack --g

②、輸入webpack -v 檢測是否安裝成功

③、如果能顯示webpackb版本資訊,cd到專案目錄中,輸入打包命令

webpack  a.js  pack.js


這時專案中就多多出一個pack.js檔案,只需要在index.html中引用pack.js。這時就會瀏覽器控制檯中就會輸出hello world了。


2、webpack安裝到專案目錄下的命令

、cd到專案目錄中

②、安裝webpack

       在cmd終端輸入

npm init -y     //建立package.json檔案
npm install webpack --save-dev

③、輸入webpack -v 檢測是否安裝成功

④、如果能顯示webpackb版本資訊,輸入打包命令(window系統下命令)

.\\node_modules\\.bin\\webpack a.js pack.js


這時專案中就多多出一個pack.js檔案