美文网首页
webpack(二)

webpack(二)

作者: 鱼翅大魔王 | 来源:发表于2019-01-09 12:36 被阅读0次

2019年1月8日19:21:47

今天主要写一下关于loader的东西,虽然各种npm i -s xxx-loader装个不停,但是总体上的思路却没什么特别大的变化。
另外关于webpack4.xwebpack3.x的区别似乎又成为了一个让人头疼的问题。

1.将es6转化为es5

使用babel-loaderbabel-core可以使在打包时将es6语法转化为es5语法。安装后需要在webpack.config.js里添加对应的配置信息。

npm i -s babel-loader babel-core

其中,正则表达式的部分不能使用i来进行大小写的设置,设置exclude可以忽略指定目录,设置include可以仅打包指定目录,节省打包所需的时间。

module:{
        rules:[
            {
                test:/\.js$/,
                use:{loader:"babel-loader"},
                exclude: /(node_modules|bower_components)/,
                include : path.resolve(__dirname,'src')
            },
          ]
}

2.处理css文件

npm i -s css-loader style-loader

使用css-loaderstyle-loader可以处理css文件,但需要注意的是,在use数组中添加对应的loader时引用顺序是从下往上的

3.给css加上浏览器前缀

考虑兼容问题css需要加上前缀才可以使用,需要安装postcss-loaderautoperfixer

npm i -s postcss-loader autoprefixer

为了正确的使用postcss-loader我们需要配置一个postcss.config.js文件

postcss.config.js
module.exports = {
    plugins: [
        require('autoprefixer')({
            browsers: ['last 5 versions']
        })
    ]
}

4.处理@import引入的css文件

loader里给css-loader设置参数autoperfixer:1即可使@import引入的文件添加浏览器前缀

{
                    loader:"css-loader",
                    options:{
                        importLoaders:1
                    }
                }

5.处理less文件

使用less-loader可以处理less文件,但同时在处理less文件时,项目里也需要安装less依赖

6.处理html模板与ejs模板

对于html模板的处理,其实安装html-loader就可以了,ejs的话对应的是ejs-loader,两者没有特别大的区别,只是前者在app.js中以文本的形式插入进innerHTML中,后者则是一个带参函数直接渲染页面里的数据。

6.处理图片及其他资源

使用file-loader可以打包图片资源,但如果引用在模板里,会出现资源的路径问题。解决方法是在模板里使用如下语法

${ require(...path) }

打包图片资源时可以使用url-loader并设置参数limit使文件体积大于该数值的资源压缩。
对于图片资源还可以使用image-webpack-loader直接压缩图片资源。

相关文章

网友评论

      本文标题:webpack(二)

      本文链接:https://www.haomeiwen.com/subject/nxwbrqtx.html