脱离脚手架来配置、学习 webpack4.x (一)基础搭建项目
序
现在依旧记得第一次看到webpack3.x 版本配置时候的状态 刚开始看到这些真的是一脸懵。希望这篇文章能帮到刚开始入门的同学。
webpack 是什么?
webpack是一个模块化打包工具,webpack 通过入口分析项目结构,找到JavaScript模块以及一些不能直接在浏览器上运行的语言、语法等 如(scss、ts、es6+等),并将其打包成可以直接在浏览器运行的js,以及压缩、加密、按需加载等。
相关概念
- Entry:入口,webpack执行构建的第一步将从Entry开始,可理解为输入
- Module:模块,在webpacl中一切皆为模块,一个模块对应一个文件,webpack会从配置的Entry开始递归找出所有依赖的模块
- Chunk:代码块,一个chunk由多个模块组合而成,用于将代码合并和分割
- Loader:模块转换器,用于把模块原内容按照需求转换为需要的新内容
- Plugin:扩展插件,在webpack构建流程中的特定时机注入扩展逻辑来改变构建结果和想要做的事情
- Output:输入结果,在webpack经过一系列处理并得到最终想要的代码然后输出结果
- runTime:在浏览器运行时,连接模块的连接器
- manifest:webpack 编译时记录所有模块的详细信息的数据集合(连接器来这里查询具体的模块)
环境搭建
1、先用npm初始化一个项目,得到 package.json 文件
npm init -y 或者
npm init // 这个要填写一些信息 如 名称 邮箱 版本 等等
2、安装webpack 4 将CLI 独立出来了,所以需要安装两个包
npm install webpack webpack-cli -D
webpack-cli 我觉得全局安装比较方便,命令行全局安装不会造成版本冲突之类的。根据官网的api,现在我们可以进行打包了。
但是为了更加方便的打包我们需要用到npm script 功能(简单的说就是临时把node_modules 路径加到系统环境变量)。
先建立好相关文件如 webpack.config.js
在package.json scripts 中加入
"build:dev": "webpack --mode development"
在webpack.config.js 中导出一个最简单的对象给webpack
'use strict'
const path = require('path') // path
function resolve (dir) {
return path.join(__dirname, dir)
} module.exports = {
mode: 'development',
entry: {
app: './main.js'
},
output: {
filename: '[name]-[hash].js',
path: path.resolve(__dirname, 'dist'),
publicPath: './'
} }
在窗口执行
npm run build:dev
不出问题,应该是打包成功了。
源码
https://github.com/ben-Run/webpack-learn
要是帮到你了可以点下star, 哈哈~~~
脱离脚手架来配置、学习 webpack4.x (一)基础搭建项目的更多相关文章
- 脱离脚手架来配置、学习 webpack4.x (二)基础搭建loader 配置 css、scss
序 上一篇已经把基本架子搭起来了,现在来增加css.scss.自动生成html.css 提前等方面的打包.webpack 默认只能处理js模块,所以其他文件类型需要做下转换,而loader 恰恰是做这 ...
- 【IntelliJ IDEA学习之五】IntelliJ IDEA 搭建项目
版本:IntelliJIDEA2018.1.4 一.同一窗口展示多个应用(弊端:耗内存) idea没有eclipse workspace的概念,如果想在同一窗口显示多个应用,可以按照如下方式来做:1. ...
- 【转】Android Studio安装配置学习教程指南 Gradle基础--不错
原文网址:http://www.linuxidc.com/Linux/2015-02/113890p4.htm 其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了 ...
- webpack4.x 从零开始配置vue 项目(一)基础搭建项目
序 现在依旧记得第一次看到webpack3.x 版本配置时候的状态 刚开始看到这些真的是一脸懵.希望这篇文章能帮到刚开始入门的同学. webpack 是什么? webpack是一个模块化打包工具,w ...
- webpack4配置学习(一)
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...
- webpack4.x 从零开始配置vue 项目(二)基础搭建loader 配置 css、scss
序 上一篇已经把基本架子搭起来了,现在来增加css.scss.自动生成html.css 提取等方面的打包.webpack 默认只能处理js模块,所以其他文件类型需要做下转换,而loader 恰恰是做这 ...
- 基于Windows10 x64+visual Studio2013+Python2.7.12环境下的Caffe配置学习
本文在windows下使用visual studio2013配置关联python(python-2.7.12.amd64.msi)的caffe项目,如果有耐心的人,当然可以自己去下载caffe项目自己 ...
- AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
随机推荐
- 不等"金九银十",金风八月,我早已拿下字节跳动的offer
字节跳动,我是在网上投的简历,之前也投过一次,简历都没通过删选,后来让师姐帮我改了一下简历,重新投另一个部门,获得了面试机会.7月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准 ...
- GooglePlay新版排行榜接入
新版本的GMS的api和老版本的有很大的差异,刚接了一下,在这里留一个记号,以便查阅:判定是否已经登录 private static boolean isSignedIn(Cocos2dxActivi ...
- UVA11388 GCD LCM
(链接点这儿) 题目: The GCD of two positive integers is the largest integer that divides both the integers w ...
- 低版本IE兼容 H5+CSS3 方案
[主要是针对ie6 7 8对支持和让老浏览器支持html5+css3的一些js脚本] html5shiv.js // 让IE8及耕地版本的IE识别section,article,nav等html5元 ...
- Python基础总结之初步认识---class类的继承(终)。第十六天开始(新手可相互督促)
最近生病了,python更新要结束了,但是这才是真正的开始.因为后面要更新的是UnitTest单元测试框架,以及后续的Requests库.在后续的笔记会补充一些python的其他细节笔记.我想是这样的 ...
- HashMap源码分析之面试必备
今天我们就面试会问到关于HashMap的问题进行一个汇总,以及对这些问题进行解答. 1.HashMap的数据结构是什么? 2.为啥是线程不安全的? 3.Hash算法是怎样实现的? 4.HashMa ...
- Java请求Http
一.工具类,直接粘贴调用即可 package cn.com.service.httpReq; import java.io.BufferedReader;import java.io.IOExcept ...
- Jenkins将ASP.NETCore部署到Azure
首先需要获得Azure上App-service 的porfile. 登录portal 选到app,点击Get publish pofile 将得到一个 ****.PublishSettings,注意这 ...
- css布局之居中
CSS布局之居中 本文主要是介绍水平居中,垂直居中,还有水平垂直居中的方法 水平居中 1.行内元素水平居中 使用text-align:center;就可以实现行内元素的水平居中,但是记得要在父元素中设 ...
- 回顾js中的cookie/localstorage
1.首先简单总结下cookie cookie:可以做会话跟踪 特点: 1.大小限制(不能超过4k) 2.每个域下cookie不能超过50个 3.有效期(和设定时间有关), ...