webpack
来源:互联网 发布:飞天侠淘宝干嘛的 编辑:程序博客网 时间:2024/05/17 18:18
常用命令
创建新的文件夹
mkdir 文件夹名
初始化npm项目
npm init
安装webpack
npm install webpack –save-dev
引入另外文件
require(‘…’)
打包单独文件
webpack hello.js hello.bundle.js
安装css-loader和styel-loader
npm install css-loader style-loader –save-dev
通过命令行使用loader
webpack hello.js hello.bundle.js –module-bind
“css=style-loader!css-loader”
在require中引入loader
require(‘style-loader!css-loader!./style.css’)
打包时输出打包的过程
–progress
打包时输出打包的模块
–display-modules
打包时输出打包的原因
–display-reasons
打包时输出彩色文字
–colors
文件更改,自动更新
webpack hello.js hello.bundle.js –watch
项目文件的基本配置
新建文件夹
mkdir webpack-demo
初始化npm
npm init
安装依赖
npm install webpack –save-dev
配置出入口文件
var path = require('path');module.exports = { //entry: './src/script/main.js',//入口文件 entry: { main: './src/script/main.js', //a: ['./src/script/a.js', './src/script/b.js'], a: './src/script/a.js', b: './src/script/b.js' }, output: { path: path.resolve(__dirname,'dist/'), //打包后文件存放的位置,注意这个要是绝对路径 filename: 'js/[name]-[chunkhash].js',//打包后的文件名 publicPath: 'http://xxx.xx.com' }}
指定配置文件
默认是 webpack.config.js
webpack –config webpack.dev.config.js
配置package.json文件
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "webpack": "webpack --config webpack.config.js --progress --display-modules --colors --display-reasons" }
生成项目中的html页面
安装插件
npm install html-webpack-plugin –save-dev
配置参数
plugins:[ new htmlWebpackPlugin({ filename: 'index-[hash].html',//指定文件名字 template: 'index.html', inject: false,//脚本引入的位置head or body title: '这是动态生成的Title', date: new Date(), minify: {//压缩代码 removeComments: true, collapseWhitespace: true } }) ]
在项目根目录下的index.html文件中,需要插值的地方用这种
<title><%= htmlWebpackPlugin.options.title %></title>
方式来动态的插入值
通过使用html-webpack-plugin来控制引入的脚本是放在头部还是放在body中
<script type='text/javascript' src='<%= htmlWebpackPlugin.files.chunks.a.entry %>'></script>
项目中的资源文件
loader的处理方式是从右向左
loader的使用方法有三种:
- 在引入文件的时候
require(‘style-loader!css-loader!./style.css’)
- 在命令行中
webpack a.js a.bundle.js –module-bind “css=style-loader!css-loader”
- 在配置文件中
以babel为例,(用于转换ES6语法)需要先安装babel
cnpm install –save-dev babel-loader babel-core
lastest是babel loader的一个插件,也需要安装
cnpm install –save-dev babel-preset-latest
modules:[ { test: /\.js$/, loader: 'babel' query:{ 'presets': 'lastest' } } ]
另外也可以在loader后面加’?’来配置。如
require(“url-loader?mimetype=image/png!./file.png”);
或者是
{ test: /.png$/, loader: “url-loader?mimetype=image/png” }
或者以命令行的形式
webpack –module-bind “png=url-loader?mimetype=image/png”
也可在项目的根目录下创建.babelrc文件来进行配置
{ 'presets': ['lastes']}
还有一种方法,就是在package.json中进行配置
'babel':{ 'presets':[ 'lastest'] }
处理css资源
在入口文件app.js中通过ES6的import引入文件:import ‘./css/common.css’
通过npm安装所需要的style-loader和css-loader.
{ test: /\.css$/, loader: 'style-loader!css-loader'}
postcss-loader结合autoprefixer给属性添加浏览器前缀
通过给css-loader加参数,可以是通过@import引进的外部css文件也可以自动加上浏览器前缀
{ loader: 'css-loader', options: { importLoaders: 1 }}
不用新建postcss.config.js的情况下,可在plugins中写入下面的代码就可实现
new webpack.LoaderOptionsPlugin({ options : { postcss : function(){ return [ require('autoprefixer')({ broswers : ['last 5 versions'] }) ]; } }})
图片的处理
file-loader、url-loader用于处理图片
image-webpack-loader
{ test: /\.(png|jpg|gif|svg)$/i, loader: 'file-loader', options: {//压缩后的路径和名称 name: 'image/[name]-[hash:5].[ext]' }}
在模板或者组件中想使用图片的相对地址引用,可以用下面的方法:
<img src="${require('../../img/5.jpg')}" alt="">
url-loader在指定的大小范围内时,将图片转换成base64编码,如超过指定的大小,交给file-loader处理。
- WebPack
- webpack
- webpack
- webpack
- webpack
- Webpack
- webpack
- webpack
- Webpack
- webpack
- webpack
- webpack
- webpack
- webpack
- Webpack
- webpack
- webpack
- webpack
- 虚函数浅析
- 引用类型的赋值问题--.net 中的Deep Clone
- 数据结构与算法(c++)--拓扑排序
- DAY_01 HTML小白学习笔记
- QT多线程选项
- webpack
- 【应用实例】增强现实应用开发—3D模型、视频、音频、交互
- 在QT集成开发环境中用OpenCV读取一张图片显示在Qlabel上
- 【Unity3D_UGUI速成班】——07.Scrollbar
- 从函数的零点问题到二分法的应用
- c语言之堆区二维数组
- ECSHOP自动确认收货解决方案 【附代码】
- Implement the merge sort
- 第一次写博客