Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >webpack@3简单使用

webpack@3简单使用

作者头像
代码之风
发布于 2018-10-31 03:21:46
发布于 2018-10-31 03:21:46
1K00
代码可运行
举报
文章被收录于专栏:马涛涛的专栏马涛涛的专栏
运行总次数:0
代码可运行

这篇博客用的是webpack3的版本,作为入门理解学习 非原创,只为学习记录。博客大部分内容引用来源如下:

作者:夕阳 来源:掘金 著作权归作者所有。

如果侵权,立即删除!

前端为什么需要工程化工具?

  1. 语言多
  2. 变化快

webpack横空出世。

webpack:从入门到真实项目配置(注意文中作者配置的是webpack@3)————掘金 为什么要用webpack?

自从出现模块化以后,大家可以将原本一坨代码分离到个个模块中,但是由此引发了一个问题。每个 JS 文件都需要从服务器去拿,由此会导致加载速度变慢。Webpack 最主要的目的就是为了解决这个问题,将所有小文件打包成一个或多个大文件,官网的图片很好的诠释了这个事情,除此之外,Webpack 也是一个能让你使用各种前端新技术的工具。作者:夕阳 链接:https://juejin.im/post/59bb37... 来源:掘金

使用 webpack3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir  webpack-demo
cd webpack-demo
// 创建 package.json,这里会问一些问题,直接回车跳过就行
npm init 
//  推荐这个安装方式,当然你也安装在全局环境下
// 这种安装方式会将 webpack 放入 devDependencies 依赖中
npm install --save-dev webpack@3

然后按照下图创建文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// sum.js
// 这个模块化写法是 node 环境独有的,浏览器原生不支持使用
module.exports = function(a, b) {
    return a + b
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// index.js
var sum = require('./sum')
console.log(sum(1, 2))
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
    <script src="./build/bundle.js"></script>
</body>
</html>

现在我们开始配置最简单的 webpack,首先创建 webpack.config.js 文件,然后写入如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 自带的库
const path = require('path')
module.exports = {
    entry:  './app/index.js', // 入口文件
    output: {
      path: path.resolve(__dirname, 'build'), // 必须使用绝对地址,输出文件夹
      filename: "bundle.js" // 打包后输出文件的文件名
    }
  }

现在我们可以开始使用 webpack 了,在命令行中输入

node_modules/.bin/webpack 没问题的话你应该可以看到类似的样子

可以发现原本两个 JS 文件只有 100B,但是打包后却增长到 2.66KB. 。因为 module.export 浏览器是不支持的,所以 webpack 将代码改成浏览器能识别的样子。 即将index.jssum.js整合到了一个文件里,并输出到bundle.js

现在将 index.html 文件在浏览器中打开,应该也可以看到正确的 log。

我们之前是在文件夹中安装的 webpack,每次要输入 node_modules/.bin/webpack 过于繁琐,可以在 package.json 如下修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"scripts": {
    "start": "webpack"
  },

复制代码然后再次执行 npm run start,可以发现和之前的效果是相同的。简单的使用到此为止,接下来我们来探索 webpack 更多的功能。

也可以使用npx webpacknpx帮你找本地目录的webpack

用 babel-loader 把 ES6 转译为 ES5

Loader 是 webpack 一个很强大功能,这个功能可以让你使用很多新的技术。

Babel 可以让你使用 ES2015/16/17 写代码而不用顾忌浏览器的问题,Babel 可以帮你转换代码。首先安装必要的几个 Babel 库 npm i --save-dev babel-loader@7 babel-core@6 babel-preset-env

注意:webpack 3.x babel-loader 7.x | babel 6.x 官方文档说 webpack3搭配babel-loader 7和babel 6 如果是版本4 那么webpack 4.x | babel-loader 7.x | babel 6.xnpm install -D babel-loader@7 babel-core babel-preset-env webpack

复制代码先介绍下我们安装的三个库

  • babel-loader 用于让 webpack 知道如何运行 babel
  • babel-core 可以看做编译器,这个库知道如何解析代码
  • babel-preset-env 这个库可以根据环境的不同转换代码

接下来更改 webpack-config.js 中的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
// ......
    module: {
        rules: [
            {
            // js 文件才使用 babel
                test: /\.js$/,
             // 使用哪个 loader
                use: 'babel-loader',
            // 不包括路径
                exclude: /node_modules/
            }
        ]
    }
}

复制代码配置 Babel 有很多方式,这里推荐使用 .babelrc 文件管理,创建.babelrc 文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// ..babelrc
{
    "presets": ["babel-preset-env"]
}

复制代码现在将之前 JS 的代码改成 ES6 的写法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// sum.js
export default (a, b) => {
    return a + b
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// index.js
import sum from './sum'
console.log(sum(1, 2))
//加一句ES6语法
let a=1
alert(a)

复制代码执行 npm run start,再观察 bundle.js 中的代码,可以发现代码被转换过了,并且同样可以正常 输出3。let也被转换。

当然 Babel 远不止这些功能,有兴趣的可以前往官网自己探索。

用 sass-loader 把 SCSS 转译为 CSS

创建一个CSS文件夹,里面有main.scssmain.scss里写几句SCSS语法的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body{
    background: red;
    #app{
        width:100px;
        height: 100px;
        border:2px solid green;
    }
}

要安装四个loader

npm i --save-dev css-loader style-loader sass-loader node-sass 使用 css-loaderstyle-loader 库。前者可以让 CSS 文件也支持 import,并且会解析 CSS 文件,后者可以将解析出来的 CSS 通过标签的形式插入到 HTML 中,所以后面依赖前者。

然后配置 webpack.config.js官网在这里Sass Loader

rules数组添加一个对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// webpack.config.js
module.exports = {
    ...
    module: {
        rules: [
        //要添加的对象
        {
            test: /\.scss$/,
            use: [
                "style-loader", // creates style nodes from JS strings
                "css-loader", // translates CSS into CommonJS
                "sass-loader" // compiles Sass to CSS, using Node Sass by default
            ]
        }
        ]
    }
};

然后在index.js添加代码: import './CSS/main.scss' 引入css的代码。css-loader让css文件也支持引入,因为webpack中把所有的文件都当做模块

然后命令行npx webpack开始编译

可以看到main.scss已经编译完成。

这时查看bundle.js

发现css代码已经在bundle.js中.当打开首页的html加载bundle.js时,js中的css代码就会被当做字符串添加到html页面中。

这个项目的github

这个项目的github

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
webpack教程:如何从头开始设置 webpack 5
最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。
前端小智@大迁世界
2020/11/24
2.5K0
webpack教程:如何从头开始设置 webpack 5
Webpack4教程 - 第二部分,使用loader处理scss,图片以及转换JS
今天继续我们的Webpack 4入门教程。在介绍了Webpack的基本概念之后,是时候更深入一点了。这次我们会涉及Webpack中非常强大的一个东西:loader。首先,我们会学习如何使用那些可用的loader。它将包括如何处理css、scss、图片以及对老版本的JavaScript语言的转换。让我们开始吧!
葡萄城控件
2018/09/14
9130
四大维度解锁webpack3笔记
在命令行输入webpack -h,成功就出现下图,有很多webpack命令可以看一看
FinGet
2019/06/28
1.1K0
四大维度解锁webpack3笔记
【One by one系列】一步步学习webpack打包
0配置,webpack4受Parcel打包工具启发,尽可能的让开发者运行项目的成本变低。webpack4不再强制需要webpack.config.js作为打包的入口配置文件,默认的入口为./src/和默认的出口./dist,小项目的福音。
DDGarfield
2022/06/23
4300
Webpack系列——手把手教你使用Webpack搭建简易的React开发环境
在这篇文章中我们开始利用我们之前所学搭建一个简易的React开发环境,用以巩固我们之前学习的Webpack知识。首先我们需要明确这次开发环境需要达到的效果:1、能够编译JSX语言 2、css样式使用Sass开发 3.能够将基础的ES6转化为ES5 4.能够使用ESLint在开发的时候为我们做代码风格审查
用户1515472
2019/07/24
2K0
Webpack系列——手把手教你使用Webpack搭建简易的React开发环境
Vue 07.webpack
webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
LittlePanger
2020/04/14
8490
使用Webpack来做自己的cra脚手架
现如今的JavaScript已经出了ES6,ES7甚至许多更高的版本,但是有很多浏览器是不支持这些新的语法,所以需要通过Babel 来将你的新语法编译成浏览器可以理解的旧语法。这是通过 Babel/core模块和babel/perset-env插件完成的。当然Babel还有其他的转换功能。
学前端
2020/06/11
9520
使用Webpack来做自己的cra脚手架
09_Webpack打包工具
Webpack打包工具对项目中的复杂文件进行打包处理,可以实现项目的自动化构建,并且给前端开发人员带来了极大的便利。
张哥编程
2024/12/13
2170
09_Webpack打包工具
webpack配置
webpack 使用流程 1.创建文件目录 + direaction - dist - src + css + js + images + index.html + main.js 2.初始化项目 1 npm init -y | 文件目录 + direaction - dist - src + css + js + images +
yaoyaoah
2020/04/09
5710
webpack 入门教程
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
老马
2018/08/20
4.2K0
webpack 入门教程
从零开始配置webpack(基于webpack 4 和 babel 7版本)
webpack启动后会从 Entry 里配置的 Module 开始递归解析 Entry 依赖的所有Module.每找到一个Module,就会根据配置的Loader去找出对应的转换规则,对Module进行转换后,再解析出当前的Module依赖的Module.这些模块会以Entry为单位进行分组,一个Entry和其所有依赖的Module被分到一个组也就是一个Chunk。最好Webpack会把所有Chunk转换成文件输出。在整个流程中Webpack会在恰当的时机执行Plugin里定义的逻辑。
胡哥有话说
2019/09/12
6960
vue 学习笔记第四弹 - Webpack
webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
syy
2020/04/07
9220
webpack从零搭建开发环境
为了方便也可以这么写,使用 npm run 命令这个命令执行的时候默认会把 node_modules 的.bin 文件放到全局上,执行之后销毁npm run buildnpm run dev
小丑同学
2020/09/21
1.3K0
webpack超详细教程!入门一篇就够了
webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
beifengtz
2019/08/26
10K0
webpack超详细教程!入门一篇就够了
10天从入门到精通Vue(五)Webpack打包
webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
共饮一杯无
2022/11/28
5330
10天从入门到精通Vue(五)Webpack打包
webpack快速构建项目
webpack是什么我在这里就不多说了,实在不知道的可以直接在去搜一下,都一大堆答案。关于用webpack怎么构建项目,方法也是多种多样,五花八门。今天,我就写下我平常构建项目的方式,这个方式我觉得比较便捷和简单粗暴,如果有什么要指出的,也欢迎大家评论,毕竟我也只是一个前端新人。
守候i
2018/08/22
8600
webpack快速构建项目
怎么用webpack搭建前端环境?
一、前端构建工具 grunt gulp webpack(主流,https://webpack.js.org/) Fis3(百度) 二、webpack是什么 webpack 是一个现代 JavaScript 应用程序的静态模块打包器 webpack稳定版本:v4.44 三、如何使用webpack搭建前端环境 安装node.js( v12.x) 注意:如果npm安装一些包由于网速原因,安装慢切换一下镜像源 改成淘宝镜像: npm config set registry https://registry.np
江一铭
2022/06/16
1.2K0
webpack基础探讨
本文作者:IMWeb zixinfeng 原文出处:IMWeb社区 未经同意,禁止转载 1. 使用webpack webpack命令使用 webpack --help (webpack -h) 查看所有的命令 webpack-v 打包命令 webpack [] 不适用webpack配置文件的时候 使用webpack配置文件, 直接webpack --config 指定配置文件 (默认配置文件名称 webpack.config.js或者 webpackfile.js) Basic Opt
IMWeb前端团队
2019/12/03
7600
Webpack4 常用配置详解
实现Webpack的打包最基本的就是配置好入口、出口,npm install webpack后在根目录创建webpack.config.js,代码如下:
EchoROne
2022/08/15
1.7K0
webpack5快发布了,你还没用过4吗?
webpack5 预计会在 2020 年年初发布,之前从 alpha 版本就有关注,本次重点更新在长期缓存,tree shakking 和 es6 打包这块。具体变更可以参考https://github.com/webpack/changelog-v5/blob/master/README.md。
前端森林
2020/04/23
1.6K0
webpack5快发布了,你还没用过4吗?
相关推荐
webpack教程:如何从头开始设置 webpack 5
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验