從0開始使用webpack4構建靜態網站(二) - 開始使用

webpack用來編譯javascript模塊,安裝成功以後就可以通過cli或者api與webpack交互。

基本設置:

首先創建一個目錄,初始化npm,然後本地安裝webpack,webpack-cli(可以在命令行執行webpack的工具)

mkdir webpack-demo && cd webpack-demo
npm init -y
npm install webpack webpack-cli --save-dev

然後創建如下的目錄結構

webpack-demo
  |- package.json
+ |- index.html
+ |- /src
+   |- index.js

src/index.js

function component() {
  var element = document.createElement('div');
  element.innerHTML = 'Hello Webpack';
  return element;
}

document.body.appendChild(component());

index.html

<!doctype html>
<html>
  <head>
    <title>Getting Started</title>
    <script src="https://unpkg.com/[email protected]"></script>
  </head>
  <body>
    <script src="./src/index.js"></script>
  </body>
</html>

在這個例子中,<script>標籤中明確了依賴的javascript文件,lodash在頁面執行前加載,index.js並沒有使用到_,只是用來確保變量_存在。用這種方式管理javascript項目有以下問題:

  • 腳步是否依賴一個外部庫並不是顯而易見的。
  • 如果依賴丟失了,或者加載順序不對,應用的功能就會執行不正確。
  • 如果依賴引用了但並沒有使用到,就會造成下載不必要的代碼。

下面我們用webpack來管理這些腳本。

創建Bundle

我們在當前目錄執行 npx webpack, npx命令,搭載在Node 8.2或更高版本,可以執行webpack包中的webpack命令。

webpack-demo
  |- package.json
  |- /dist
    |- main.js
  |- /src
    |- index.js

自動在dist目錄下生成了main.js打包後的文件,並自動尋找入口文件index.js. 可以看到webpack4是零配置的,默認是production模式。如果想要開發模式,可以使用 npx webpack -- mode development

index.html並沒有做任何處理,我們將在後面介紹如何處理html文件。

使用配置文件

雖然webpack4不需要任何配置,但是多數項目都需要複雜配置,這也是爲什麼webpack支持配置文件。這也比手動在終端輸入很多命令要高效。下面我們就創建一個配置文件來替代cli的命令選項。

webpack-demo
  |- package.json
+ |- webpack.config.js
  |- /dist
    |- index.html
  |- /src
    |- index.js

webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  }
};

以下命令使用配置文件來構建

npx webpack --config webpack.config.js

NPM腳本

package.json

{
    "name": "webpack-demo",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
+     "build": "webpack"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "devDependencies": {
      "webpack": "^4.0.1",
      "webpack-cli": "^2.0.9",
      "lodash": "^4.17.5"
    }
  }

現在就可以用npm run build命令來替換剛纔使用的npx命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章