webpack

常用命令

创建新的文件夹

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处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值