从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/lodash@4.16.6"></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命令。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值