我们需要安装webpack 还需要安装webpack cli

这两个都是我们的开发依赖

这里我们一般会加一个-D表示上线的时候不需要他们两个包

安装我们的webpack

先初始化一下,记住我们的安装依赖

我机器代码的路径:

D:\MyDemos\webpack4\webpack-dev-1

Ctrl+鼠标右键打开CMD窗体。输入

yarn init -y

初始化之后呢 就可以安装我们所需要的两个包

我们使用yarn add去安装

yarn add webpack webpack-cli -D

-D:表示当前是开发依赖,上线的时候不需要。

安装好后就可以进入webpack的配置

webpack可以进行零配置,但是只要是零配置,就会很弱

打包工具--》输出后的结果(js模块)

一般源码都在src目录下,所以我们创建src目录。

创建src目录,并在src下创建index.js文件

输出一点内容。

console.log('hello zfpx');

我们想把这个文件打包:

npx webpack

他会默认去找node_modules下的bin文件

webpack.cmd:这里有一个判断如果当前目录有node.exe就执行,他就会用我们当前文件夹下的node.exe去执行 webpack.js

如果没有就用node去执行上一个目录下的webpack.js

他实际上执行的就是node_modules/webpack/bin/weboack.js文件。

这里实际上还需要webpack-cli的支持。如果没有安装webpack-cli 他会提示你去安装

这样我们就知道了这两者之间的关系。

这是我们打包出来的dist/main.js的文件。这个文件夹明显压缩过了

安装一个插件code runner

它帮我们执行node 代码

输出了我们的内容

我们明明一行代码却输出了很多。

wepack的功能是打包。支持我们js的模块化。

也就是说我们可以在index.js里面写一些模块化的代码

src/a.js文件及。我们可以在里面写一些node的语法

module.exports = 'zfpx';

导出以后,我们可以在index.js内引用。这种语法是不可能在浏览器中跑的。因为这是我们node的一个规范

我们输出str

运行我们的代码

输出结果

我们最终希望把产出的结果运行在浏览器上

我们在cmd里面再次执行npx webpack命令

这里会有一个warning的提示,提示你mode选项没有设置。 webpack会默认使用production的模式,

我们先不关心打包的结果是什么。

我们新建一个Index.html文件夹。并引用我们打包后的结果

我们找到我们的Index.html文件夹,直接双击用浏览器打开。看到我们输出的结果

webpack帮我们解析了js的模块,查找相关依赖的文件。把这些文件打包成一个文件。解决了浏览器require的问题。相当于它自己实现了一套模块化 的机制

当前打包的机制比较弱。我们想修改输出的目录,就需要手动来配置

手动配置webpack

在根目录新建webpack.config.js文件。刚才的输出文件夹dist文件夹我们先删除。

配置webpack.config.js文件

webpack是node写出来的

path路径必须是一个绝对路径,这时候需要node的核心模块

let path=require('path');引用path模块。这是node内置的模块

path.resolve()方法可以把一个相对路径解析成一个绝对路径

这里我们使用Run Code查看输出的结果。发现path.resolve('dist')就是根目录的dist文件夹的路径

这里我们一般都会写上个__dirname,它表示当前根目录下产生一个dist目录

这样我们就有个入口和出口。

我们还希望打包出来的代码我们能看的见,不是压缩后的代码

这里我们为了能看清楚。是打包之前的代码,不是压缩之后的代码

我们选择开发模式

mode:'development',//模式 默认两种 production development

再次运行npx webpack。这个时候我们打包出来一个bundle.js文件

这个bundle.js就是我们打包出来的结果

webpck.config.js文件的名字可以修改吗?

那么为什么默认叫这个名字

node_modules/webpack-cli/bin/config-yargs.js里面

webpack.config.js or webpackfile.js这是默认的两个名字,默认用的是前者

那么这个名字名字可以不可以改呢?这是我们后续要说的

最终代码

//webpack是node写出来的 node的语法
let path=require('path');
console.log(path.resolve('dist'));
module.exports = {
mode:'development',//模式 默认两种 production development
entry:'./src/index.js',//入口
output: {
filename:'bundle.js', //打包后的文件夹名
path:path.resolve(__dirname,'dist'),//路径必须是一个绝对路径
}
}

webpack.config.js

2、webpack基础配置的更多相关文章

  1. 搭建webpack基础配置

    搭建webpack基础步骤: 1.去官方网站下载node.js(根据自己电脑的系统类型选择) 2.安装node.js完成后打开cmd命令提示符: 出现版本号证明安装成功 3.cd到工程目录下 npm ...

  2. webpack基础配置

    webpack运行规则: Webpack 会给每个模块分配一个唯一的id并通过这个id索引和访问模块.在页面启动时,会先执行入口文件中的代码,其它模块会在运行 require 的时候再执行. 运行时主 ...

  3. webpack基础配置(一)

    第一次写博客,有点小小的兴奋,也有一点点的慌张--- 我是一个小白,仅记录自己的学习过程,内容仅供参考,如果有问题的地方,还希望各位大牛多多指教,我菜,菜是原罪,但是我可以学-- 1.最基本的:如何使 ...

  4. webpack(11)配置文件分离为开发配置、生成配置和基础配置

    前言 上篇我们已经配置好了本地开发服务器,但是配置的相对比较凌乱,一个文件中有些是开发时用到的配置,有些是生成时用到的配置,有些是开发和生成都要用到的配置,所以我们这里把环境分为3个环境 webpac ...

  5. webpack4基础入门操作(二)(讲解下webpack的配置内容)

    前序:我之所以开始写这个系列,是因为我最近出去看了下外面的情况,发现技术更新的脚步太快了.我的技术栈已经完全落伍了. 所以准备今年学习写新的东西,而React.webPack4就是我的第一步.前面我看 ...

  6. webpack+babel+react+antd技术栈的基础配置

    webpack+babel+react+antd技术栈的基础配置 前段时间使用webpack+babel+react+antd做了一套后台管理系统,刚开始被一大堆的新知识压的喘不过气来,压力挺大的.还 ...

  7. 深入浅出 webpack 之基础配置篇

    前言 前端工程化经历过很多优秀的工具,例如 Grunt.Gulp.webpack.rollup 等等,每种工具都有自己适用的场景,而现今应用最为广泛的当属 webpack 打包了,因此学习好 webp ...

  8. webpack中Entry与Output的基础配置

    entry顾名思义,就是打包的入口文件 module.exports = { // 这个文件要做打包,从哪一个文件开始打包 entry: './src/index.js', // 打包文件要放到哪里去 ...

  9. react+webpack基础学习配置

    最近学习react,公司的项目是使用create-react-app来搭建的,而我想重新使用node+mysql+react来搭建一个新的博客. 今天尝试从零开始搭建一个webpack+react项目 ...

随机推荐

  1. 技术总结--android篇(三)--代码规格和编码规范

    命名规则 变量名: 1)尽量要取有意义的名字,比方说:一个用户名的成员变量.应该写成username.而不要仅仅写个string: 2)假设是常量.既在编码过程中.这个值是不会改变的,应该写成大写的名 ...

  2. [框架安装趟雷指南]Ubuntu+1060+cuda+cudnn+Keras+TH+TF+MXnet

    [框架安装趟雷指南]Ubuntu+1060+cuda+cudnn+Keras+TH+TF+MXnet https://zhuanlan.zhihu.com/p/23480983 天清 9 个月前 写这 ...

  3. JAR、WAR、EAR(转载)

    转自:http://blog.csdn.net/mashengwang/article/details/6105189 区别:Jar.war.EAR.在文件结构上,三者并没有什么不同,它们都采用zip ...

  4. MVC——分页

    添加类PageBar.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  5. android studio 程序真机执行中文显示乱码

    代码里中文显示正常,真机执行后中文显示乱码,解决的方法: build.gradle中加入一句 android { compileOptions.encoding = "GBK" }

  6. Hadoop - YARN 概述

    一 概述       Apache Hadoop YARN (Yet Another Resource Negotiator,还有一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源 ...

  7. 51NOD 1810 连续区间 分治 区间计数

    1810 连续区间 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80     区间内所有元素排序后,任意相邻两个元素值差为1的区间称为“连续区间” 如:3,1,2是连续区间,但3, ...

  8. 使用MSSQL同步&发布数据库快照遇到错误:对路径“xxxxx”访问被拒绝的解决方法

    使用MSSQL同步 数据库同步做后后测试:先在同步那台服务器(服务器A)数据库里修改里面数据库,然后再去被同步那台服务器(服务器B)看下数据有没被同步过去 发布数据库快照遇到错误:对路径“xxxxx” ...

  9. [RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/55100299 Platform: RK3288OS: Android 6.0Kernel: ...

  10. zabbix 用户自定义监控参数添加

    1. item  key的添加 key可以带参数,该参数为一个数组列表,可以同时传递多个参数,key的格式如下 key -- [ parameters] -- 例如: vfs.fs.size[/] v ...