猫码程序员让前端飞

1、webpack从0到1-开始

2020-03-09  本文已影响0人  ComfyUI

这系列文章就是手把手教你如何从零构建一个webpack项目。目的就是为了了解webpack打包怎么玩的,平常项目开发中所用如ES6语法、less、vue是如何被打包的,是一个比较基础的内容,我也是为了总结一下这方面的知识点,梳理一下个人的知识体系而写下这些文字。
工具及版本:vscode、webpack(v4.41.5)、node(v10.16.0)
git仓库:webpack-demo

1、什么是webpack?

2、初始化

$ cd webpack-demo/chapter1
$ npm init -y
var div = document.createElement("div");
div.innerText = "hello world";

document.body.appendChild(div);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>webpack从0到1</title>
</head>
<body>
    <script src="./src/index.js"></script>
</body>
</html>
  webpack-demo/chapter1
  |- package.json
+ |- index.html
+ |- /src
+   |- index.js

3、安装webpack

# 本地
$ npm install webpack webpack-cli --save-dev

# 全局
$ npm install webpack --global

在安装一个要打包到生产环境的安装包时,你应该使用npm install --save,如果你在安装一个用于开发环境的安装包(例如,linter, 测试库等),你应该使用npm install --save-dev。请在npm文档中查找更多信息。
—— 引用来自webpack官网教程的解释。

还有我网上搜的另一个解释我也觉得很直观啊:
--save-dev是你开发时候依赖的东西,--save是你发布之后还依赖的东西。
比如,你写ES6代码,如果你想编译成ES5发布那么babel就是devDependencies。如果你用了jQuery,由于发布之后还是依赖jQuery,所以是dependencies
—— 引用segmentfaul提问

{
   ...
+  "devDependencies": {
+    "webpack": "^4.41.5",
+    "webpack-cli": "^3.3.10"
+  }
   ...
}

4、打包js

(1)第一种方式--使用默认打包的模式

$ npx webpack

执行npx webpack,会将我们的src/index.js作为入口文件,然后会新建一个dist文件夹和dist/main.js作为输出文件。
npx webpack简单一点来说就是会去找项目中本地的./node_modules/.bin/webpack,然后中执行它。

(2)第二种方式--使用配置文件打包

  webpack-demo/chapter1
  |- package.json
  |- index.html
  |- /src
    |- index.js
+ |- webpack.config.js
// 引入node中的path模块
const path = require('path');

module.exports = {
  // 定义入口文件,告诉webpack我要打包啥
  entry: './src/index.js',
  // 定义输出文件,告诉webpack打包好的文件叫啥,给我放到哪里
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname, 'dist'),
  },
};
$ npx webpack --config webpack.config.js

(3)第三种方式--使用npm脚本

{
...
+  "scripts": {
+    "build": "webpack"
+   }
...
}
$ npm run build

5、最后

  webpack-demo/chapter1
  |- package.json
  |- /dist
+   |- index.html
    |- main.js
  |- index.html
  |- /src
    |- index.js
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>webpack从0到1</title>
</head>
<body>
    - <script src="./src/index.js"></script>
    + <script src="main.js"></script>
</body>
</html>

6、其他

参考链接

上一篇 下一篇

猜你喜欢

热点阅读