博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webpack单独打包编译less
阅读量:7022 次
发布时间:2019-06-28

本文共 1775 字,大约阅读时间需要 5 分钟。

怎样实现单独打包

最近也是在使用webpack做项目,网上找了下配置方法,最后选用了一个,不得不说确实好用!但是最后打包过后发现webpack会将css一起打包到最后的js文件中去,造成这个js文件体积十分庞大,于是就考虑先把第三方库去除掉。这一步倒是很好实现,只需要配置下externals就可以了。

config.externals = {     'angular':'angular',     'bootstrap':'bootstrap' };

去除第三方库后发现还是有点儿大,于是又考虑把css提取出来生成单独的css文件,毕竟css不会影响页面的加载,如果放倒js里面就很难说了。

怎样让css可以单独打包呢?其实也很简单,只要安装一个extract-text-webpack-plugin就可以了。

var ExtractTextPlugin = require('extract-text-webpack-plugin');let extractCSS = new ExtractTextPlugin('[name].[hash].css');

引入这个插件,然后配置loader

loaders: [{  test: /\.css$/,  loader: isTest ? 'null' : extractCSS.extract('style','css')}]

最后在插件中注册一下

config.plugins.push(  extractCSS)

大功告成,我们在js中import的css文件最终都会打包成一个独立的css文件,赞!

怎样实现less的打包处理

随着预编译语言的兴起,前端开发越来越倚重于less、sass、styles等,我想在项目中使用less来开发样式,这样可以节省很多开发量,但是页面中只想引入一个css文件,这就需要将less编译成css文件,那么结合上面一步我们应该怎么实现这个功能呢?

我参考了extract-text-webpack-plugin文档上的例子

let ExtractTextPlugin = require('extract-text-webpack-plugin');// multiple extract instanceslet extractCSS = new ExtractTextPlugin('stylesheets/[name].css');let extractLESS = new ExtractTextPlugin('stylesheets/[name].less');module.exports = {  ...  module: {    loaders: [      {test: /\.scss$/i, loader: extractCSS.extract(['css','sass'])},      {test: /\.less$/i, loader: extractLESS.extract(['css','less'])},      ...    ]  },  plugins: [    extractCSS,    extractLESS  ]};

然后发现less确实打包了,但是只打包成了一个less文件,这当然不是我想要的,看来这个loader必须修改。

loaders : [{    test : /\.(less|css)$/,    loader: ExtractTextPlugin.extract('style', 'css!less')}]

修改后的loader,这次应该没问题了吧!但是。。。

ERROR in Cannot find module 'less'

怎么会是这个结果???配置代码看起来并没有什么问题,less-loader也已经安装了,真是郁闷!网上找了很久终于找到了答案:原来不仅仅安装less-loader就完了,还需要安装less,大概想要将less编译成css还是需要less模块来完成吧。

cnpm install less --save-dev

run一下,完美!

使用webpack有一小段时间了,不断给我带来惊喜,不知道还有什么功能没有学习到,希望这种良心工具越做越好。

转载地址:http://rcvxl.baihongyu.com/

你可能感兴趣的文章
iOS 初中级工程师简历指北
查看>>
什么是package-info.java
查看>>
聊聊a.x = (a = {n: 2})
查看>>
来一发算法
查看>>
[译] 通过一些例子深入了解 JavaScript 的 Async 和 Await
查看>>
Cookie和Session
查看>>
高性能缓存服务器 nuster v1.8.8.1 发布,支持 HTTP/2,多线程
查看>>
[译] 用 Flutter 开发你的第一个应用程序
查看>>
iOS学习笔记30 系统服务(三)蓝牙
查看>>
说说如何使用 vue-router 插件
查看>>
强大的代码保护软件 .NET Reactor使用教程(一):界面各功能说明
查看>>
Java并发编程:synchronized、Lock、ReentrantLock以及ReadWriteLock的那些事儿
查看>>
警告忽略
查看>>
Java Bean + 注册验证
查看>>
以太坊经典升级网络协议确保采矿保持活力
查看>>
通过mysql 插入一句话***
查看>>
centos 分区扩容
查看>>
JBoss EAP 6 monitoring using remoting-jmx and Zabbix
查看>>
邮件服务器
查看>>
OOAD-设计模式-原型模式
查看>>