webpack相关配置
cd 项目文件夹
npm init -y
npm install jquery -S //生成node_modules 下载好jquery
创建webpack.config.js
module.exports = {
entry: path.join(__dirname, './src/main.js'), //入口文件
output:{ //输出文件相关配置
path: path.join(__dirname, './dist'),
filename: 'bundle.js' //指定输出文件名称
},
mode: 'development'
}
npm install webpack -D 本地安装一下
npm install webpack-dev-server -D 本地安装webpack-dev-server
npm install webpack-cli -D
配置
"dev": "webpack-dev-server --mode development --open --port 3000 --contentBase src --hot", //--open 自动打开浏览器 --port 3000 端口号3000 --contentBase src 修改默认打开目录 --hot热重载
"build": "webpack-dev-server --mode production"
//注意 model.exports 里 mode: 'developoment' 是否加上去
(htmlwebpackplugin)插件自动在内存中根据制定页面生成一个内存页面 自动把打包好的bundle.js追加到页面
npm install html-webpack-plugin -D
webpack.config.js 中追加
const htmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
.
.
plugins: [
new htmlWebpackPlugin({
template: path.join(__dirname, './src/index.html'),
filename: 'index.html' //设置生成的内存页面名称 不是在磁盘 自动追加引用src
})
]
}
import './css/index.css'
// 如果需要处理css文件 需要安装npm install style-loader css-loader -D
// 打开webpack.conf.js 这个配置文件 在里面新增一个配置节点 叫做module 他是一个对象 有个rules 数组 存放了所有第三方文件匹配处理规则
module: {
rules: [
{
test: /\.css$/, use: ['style-loader','css-loader'] //test 正则匹配 /\.css$/ $结尾 .需要转义 类似replace(/好人/g,坏人) 匹配所有好人替换成坏人
}
]
}
import './css/index.less'
npm install less-loader -D
npm install less
module: {
rules: [
{
test: /\.css$/, use: ['style-loader','css-loader'],
},
{
test: /\.less$/, use: ['style-loader','css-loader','less-loader']
}
]
}
webpack 无法处理css样式表url地址 ../ 图片地址 字体库 需要安装
npm install url-loader file-loader -D //file-loader 是url-loader内部依赖
module: {
rules: [
{
test: /\.css$/, use: ['style-loader','css-loader'],
},
{
test: /\.less$/, use: ['style-loader','css-loader','less-loader']
},
{
test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=7631&name=[hash:8]-[name].[ext]' //处理图片路径的loader 图片小于limit字节的话处理成base64的 如果图片大于等于limit显示完整图片name=[name] 名字不变不处理 hash值
},
{
test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' //处理字体文件
},
]
}
静态属性 通过类名直接访问
es6
class Person {
static info = { name: 'zs', age:20}
}
function Animal(name){
this.name = name
}
Animal.info = 123
通过babel可以帮我们将高级语法转换为 低级的语法
①在webpack中,可以运行如下两套命令 安装两套包,去安装babel相关的loader 功能 第一套:转化成低级语法,第二套:语法对应关系
第一套包 npm install babel-core babel-loader babel-plugin-transform-runtime -D
第二套包 npm install babel-preset-env babel-preset-stage-0 -D
②打开webpack的配置文件在module节点下的rules数组中添加新的匹配规则
{
test:/\.js$/, use: 'babel-loader', exclude: /node_modules/
}
// 只需要转换自己写的 不需要转化node_modules中的js文件
// 如果不排除 node_modules ,则babel会把mode_modules中所有第三方js文件都打包编译 而且项目还会无法正常运行
③在项目的根目录中 ,新建一个叫做 .babelrc 的babel配置文件这个配置文件属于JSON格式 不能写注释 字符串双引号
在.babelrc写如下配置:
{
"presets": ["env", "stage-0"],
"plugins": ["transform-runtime"]
}
webpack相关配置的更多相关文章
- webpack常用配置总结
1. webpack简介 webpack 是一个模块打包工具.它使得模块相互依赖并且可构建等价于这些模块的静态资源.相比于已经存在的模块打包器(module bundler),webpack的开发动机 ...
- webpack的配置
使用webpack工具需要配置一个根目录下的配置文件,文件名默认为webpack.condfig.js,配置文件导出一个模块对象,包含了webpack工具的相关配置参数,这个模块对象将会以参数形式被引 ...
- webpack安装配置使用教程详解
webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...
- 在找一份相对完整的Webpack项目配置指南么?这里有
Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...
- Webpack的配置与使用
一.什么是Webpack? WebPack可以看做是模块打包机.用于分析项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),将 ...
- webpack详细配置解析
阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...
- 2、webpack基础配置
我们需要安装webpack 还需要安装webpack cli 这两个都是我们的开发依赖 这里我们一般会加一个-D表示上线的时候不需要他们两个包 安装我们的webpack 先初始化一下,记住我们的安装依 ...
- 使用react-app-rewired和customize-cra对默认webpack自定义配置
最近在学习react框架,之前一直都是用vue 开发,知道在vue 中知道如何配置一下相关的webpack 有助于开发,学react 过程中,我也在想这些该怎么配置啊,所以就有这篇文章. 这篇文章主要 ...
- vue第二单元(webpack的配置-学习webpack的常用配置)
第二单元(webpack的配置-学习webpack的常用配置) #课程目标 掌握webpack的常用配置 掌握如何根据实际的需求修改webpack的对应配置 了解webpack-dev-server的 ...
随机推荐
- Java 1.ExecutorService四种线程池的例子与说明
1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...
- kafka 消息系统
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- 蓝桥杯Java真题解析
上个月参加蓝桥杯省赛拿了个省一,自从比赛完之后就一直没怎么写代码了,还有一个多月就要国赛了,从现在开始准备下国赛,但是我也不想学什么算法,而且我还在准备考研,所以就打算只做下历年的真题,争取国赛拿个国 ...
- 关于{get;set;}访问器
/// <summary> /// 此视频更新时间/创建时间 [生成时间,不手填] /// </summary> public System.String CreateTime ...
- 可恶的 0xc0000005异常
昨天快下班的时候自己写的代码突然跑出了这个异常,,搞的我特别的无语,因为昨天女朋友要过来了,给我出现了这么一个bug,心里很不爽,果断低下班了,另外一个原因就是公司其他人都跑了,每次基本都是我一个人最 ...
- redis集群尝试
1. 使用Docker搭建redis主从复制集群 安装参照 Docker 搭建redis 集群 启动服务 docker run --name redis-master -p 6379:6379 -d ...
- 从一个异常探索spring autowired 的原理
从一个异常探索autowired 的原理. 首先环境是这样的: public class Boss { @Autowired private Car car; } //@Component 加上这个注 ...
- centos7分区建议
https://www.cnblogs.com/set-config/p/9040407.html
- MySQL PID错误,Mysql server PID file could not be found!
https://blog.csdn.net/u010098331/article/details/50752667/
- Spring的applicationContext.xml的疑问解析
Spring中注解注入 context:component-scan 的使用说明 通常情况下我们在创建spring项目的时候在xml配置文件中都会配置这个标签,配置完这个标签后,spring就会去自动 ...