当前使用的版本:webpack 4.5。

⚠️webpack 是需要有 node 环境的,所以在使用之前需要保证你当前安装的有 node。

安装 webpack:

npm install webpack --save-dev  (dev 是指的是在开发环境中使用的依赖包)

一、入门的 webpack 配置 webpack.config.js:

module.exports = {
entry: __dirname + "/app/main.js", //压缩入口
output: {
path: __dirname + "/public", //打包后的文件存放的地方
filename: "bundle.js"//打包后输出文件的文件名
},
}

⚠️需要注意的是:

1、__dirname 是 node 的全局变量,存储的是文件所在的目录

2、output 中的 path 是文件打包后的绝对路径,不是相对路径

3、执行命令的时候,如果 webpack 不是全局安装的,需要加上路径: node_models/.bin/webpack

  直接执行,如果用的是 webpack 4,则会有一个提示说需要单独安装 webpack-cli。

  因为在webpcak 3 中 webpack-cli 是集中在 webpack 中的,而在 webpack 4 为了方便管理维护,将 webpack-cli 分离了出来;所以在如果最初没有安装 webpack-cli 的时候,执行 webpack 命令会有提示说让用户安装 webpack-cli。

4、还有一种执行方法是 webpack  入口文件路径  打包后输出的文件路径

二、快捷执行打包任务:

package.json 添加如下内容:

"script" : {
"start": 'webpack' //无论是不是全局安装的webpack,都可以不用写 node_module/.bin/ 这个路径,npm 能自己找到
}

然后就可以使用 npm start 来代替上面的 node_module/.bin/webpack 这个繁琐的命令了

⚠️start (test也是)是个特殊的命令,通过 npm start 就可以找到对应的命令进行执行,如果不是 start 命令则需要使用:npm run scriptName

"scripts": {
"error": "echo \"Error: no test specified\" && exit 1"
}

test 命令需要这样执行: npm run error

他的执行结果就是输出一个错误:

三、source maps的设置,devtool选项

1、source-map 单独文件生成,功能完整,但是打包速度过慢

2、cheap-module-source-map 单独文件生成,不带映射,只能对应行,不能对应列,不便调试

3、eval-source-map 在同一个文件中生成干净完整的source-map,但是有完全问题;开发阶段首选

4、cheap-module-eval-source-map 速度最快,没有映射,缺点同3

使用,在wapack的配置中添加 devtool 即可:

module.exports = {
devtool: 'eval-source-map',
entry: __dirname + "/app/main.js",
output: {
path: __dirname + "/public",
filename: "bundle.js"
}
} 

四、浏览器监听代码修改,并自动刷新---webpack服务器:webpack-dev-server

安装该插件:npm install webpack-dev-server --save-dev

devServer 配置:

1、contentBase:服务器从哪里获取内容。默认为根目录,如果是其他目录的话,进行修改即可,建议使用绝对路径;可以从多个目录获取,用数组即可

2、port:监听哪个端口的请求,默认为 8080

3、inline:为 true 时则会进行热替换

4、historyApiFallback:使用 HTML5 History Api 时使用,如果设置为 true 则表示不跳转

使用:

module.exports = {
devtool: 'eval-source-map', entry: __dirname + "/app/main.js",
output: {
path: __dirname + "/public",
filename: "bundle.js"
}, devServer: {
contentBase: path.join(__dirname, "public"),//本地服务器所加载的页面所在的目录
historyApiFallback: true,//不跳转
inline: true//实时刷新
}
}

同时需要在 package.json 的 scripts 对象中添加

"scripts": {
"server": "webpack-dev-server --open"
}

执行 npm run server 命令就可以看到效果,这时修改文件,页面内容实时更新则说明配置成功

五:Loader

1、用于对模块的源代码进行转换

2、可以使你在 import 或"加载"模块时预处理文件

3、可以将文件从不同的语言(如 TypeScript)转换为 JavaScript

4、将内联图像转换为 data URL

5、他甚至允许你直接在 JavaScript 模块中 import CSS文件

如果要使用 loader 则需要安装对应的 loader

npm install css-loader --save-dev    告诉 webpack 加载 css

npm install js-loader --save-dev    将 TypeScript 转化成 js

然后在 webpack.config.js 中配置 module 对象

module.exports = {
module: {
rules: [
{ test: /\.css$/, use: 'css-loader' }, // 给每个 css 文件使用 css-loader
{ test: /\.ts$/, use: 'ts-loader' } // 给每个 ts 文件使用 ts-loader
]
}
};

  

wepack使用的更多相关文章

  1. webpack 快速入门 系列 - 自定义 wepack 上

    其他章节请看: webpack 快速入门 系列 自定义 wepack 上 通过"初步认识webpack"和"实战一"这 2 篇文章,我们已经学习了 webpac ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. 关于wepack的使用总结以及优化探讨

    一.前言 不知不觉,webpack版本已经到4.0了.使用它也有很长一段时间了,回头看看,自己木有总结webpack方面的知识,现在有空起个头,主要是总结自己常用的配置和一下优化的探讨,以后有啥想法也 ...

  6. 安装wepack

    安装webpack之前要安装node.js 1.安装webpack运行 npm install webpack -g 和npm install webpack-cli -g npm install w ...

  7. wepack环境配置1之node的安装

    .向往已久的webpack终于配好了.. 1.要安装webpack,首先需要安装nodejs nodejs下载地址:https://nodejs.org/en/ 下载完成后,一步步安装即可,我是安装到 ...

  8. wepack配置

    一.什么是 webpack? webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理,它能有Grunt ...

  9. 【前端必会】单页应用-你的新朋友wepack

    背景 我们开发的功能可能是简单的,但是实现功能的代码行数却可能成千上万 出于易于维护.安全.服用,我们会根据我们的经验设计我们的代码,拆解成多个独立的功能模块(代码片段.更多的文件) JS的模块规范有 ...

随机推荐

  1. http链接中请求进行编码,Http请求

    如果参数中含有特殊字符&,则强制URL编码<br> http协议中参数的传输是"key=value"这种简直对形式的,如果要传多个参数就需要用“&”符号 ...

  2. LDA主题模型(理解篇)

    何谓“主题”呢?望文生义就知道是什么意思了,就是诸如一篇文章.一段话.一个句子所表达的中心思想.不过从统计模型的角度来说, 我们是用一个特定的词频分布来刻画主题的,并认为一篇文章.一段话.一个句子是从 ...

  3. Java学习3_一些基础3_16.5.7

    字符串的一些常用方法: int length() String replace(CharSequence oldString,CharSequence newString) 用新字符串代替原字符串,返 ...

  4. 梦想CAD控件COM接口自定义命令

    在CAD软件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处下载演示实例. _DMxDrawX::RegistUserCustomCommand 向CAD控件注 ...

  5. MxCAD5.2 20181022更新

    下载地址: http://www.mxdraw.com/ndetail_10108.html 1. 开放VIP功能,无需购买即可使用 2. 修正一些图纸打开和保存出错的问题 3. 修改填充命令,对某些 ...

  6. Controller传值到前端页面的几种方式

    一丶追加字符串传值 #region 02-追加字符串传值 /// <summary> /// 02-追加字符串传值 /// </summary> /// <returns ...

  7. STL中栈stack的用法

    头文件: #include <stack> 建立一个栈stack < 类型 > s //例如 stack<int> s 加入一个新的元素s.push( a ) 询问 ...

  8. 洛谷——P1850 换教室

    P1850 换教室 有 2n 节课程安排在 nn 个时间段上.在第 i个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 $c_i$​ 上课,而另一节课程在教室 $d_i$ ...

  9. Luogu P1692 部落卫队

    解题思路 数据范围不是很大,那应该不是那些普遍的图论的算法.考虑搜索,用暴力解决.从1到N枚举每一个点的位置,搜索这个点事选还是不选.如果在这个点之前选到的点中又和他冲突的点,那就不选,要么就选. 附 ...

  10. ubuntu下手动配置apache2.4.12

    (apache2也可以使用 sudo apt-get install apache2来安装,下面来讲解下如何手动安装配置apache2) 在安装apache2之前,先要安装apache2的依赖项,ap ...