less-loader (Loaders) - Webpack 中文开发手册 - 腾讯云
文章推薦指數: 80 %
使用css-loader 或raw-loader 将其转换为JS 模块,然后使用ExtractTextPlugin 将其提取到单独的文件中。
安装. npm install --save-dev less-loader less
腾讯云备案控制台云+社区专栏视频精选问答沙龙云+竞赛团队主页开发者手册腾讯云TI平台TVP实验室搜索搜索关闭创作写文章发视频提问登录注册展开腾讯云·社区登录首页专栏视频精选问答沙龙云+竞赛团队主页开发者手册腾讯云TI平台TVP返回腾讯云官网搜索Bootstrap4Bootstrap3CC++Clojure1.8Codeigniter3CSSDocker17ElectronElixir1.5Erlang20EslintExpressGitGoHTMLHTTPImmutable3.8.1JavaScriptLodash4Lua5.3NginxPHPPhpunit6PythonReactReactnativeRedisReduxRuby2.4SassScikitimageSocket.IOSqliteSVGTensorFlowGuideTypescriptUnderscoreVue2Webpack指南|Guides接口|API概念|Concepts组态|Configuration装载|Loadersbabel-loaderbundle-loadercache-loadercoffee-loadercoffee-redux-loadercoverjs-loadercss-loaderexports-loaderexpose-loaderextract-loaderfile-loadergzip-loaderhtml-loaderi18n-loaderimports-loaderistanbul-instrumenter-loaderjshint-loaderjson-loaderjson5-loaderless-loaderLoadersmocha-loadermulti-loadernode-loadernull-loaderpolymer-webpack-loaderpostcss-loaderraw-loaderreact-proxy-loaderrestyle-loadersass-loaderscript-loadersource-map-loaderstyle-loadersvg-inline-loaderthread-loadertransform-loaderurl-loaderval-loaderworker-loaderyaml-frontmatter-loader插件|PluginsXslt&XpathYarnRxJS5Rollup.jsBabelParcelMobXKoaAngularGulpGruntStylelintStandardJSElementUIiViewUILavasMintUIPostCSSThinkJSNestnpmNode.js教程JSON教程Groovy教程vb.net教程Storm入门教程Hibernate教程Slick教程MongoDB教程Yii2.0webpack装载|Loadersless-loader编译成CSS。
使用css-loader或raw-loader将其转换为JS模块,然后使用ExtractTextPlugin将其提取到单独的文件中。
安装npminstall--save-devless-loaderless复制越少装载机需要较少的peerDependency。
因此,您可以准确控制版本。
例子将css-loader、style-loader和less-loader链式调用,可以把所有样式立即应用于DOM。
//webpack.config.js
module.exports={
...
module:{
rules:[{
test:/\.less$/,
use:[{
loader:"style-loader"//createsstylenodesfromJSstrings
},{
loader:"css-loader"//translatesCSSintoCommonJS
},{
loader:"less-loader"//compilesLesstoCSS
}]
}]
}
};复制您可以通过加载器选项将任何Less特定选项传递给tless-loader。
请参阅Less文档以查看破折号中的所有可用选项。
由于我们将这些选项以编程方式传递给Less,所以您需要在这里将它们传递给camelCase://webpack.config.js
module.exports={
...
module:{
rules:[{
test:/\.less$/,
use:[{
loader:"style-loader"
},{
loader:"css-loader"
},{
loader:"less-loader",options:{
strictMath:true,
noIeCompat:true
}
}]
}]
}
};复制不幸的是,Less不会将所有选项一对一地映射到tcamelCase。
如有疑问,请检查其可执行文件并搜索破折号选项。
通常,建议使用ExtractTextPlugin将样式表抽取到生产中的专用文件中。
这样你的样式就不依赖于JavaScript:constExtractTextPlugin=require("extract-text-webpack-plugin");
constextractLess=newExtractTextPlugin({
filename:"[name].[contenthash].css",
disable:process.env.NODE_ENV==="development"
});
module.exports={
...
module:{
rules:[{
test:/\.less$/,
use:extractLess.extract({
use:[{
loader:"css-loader"
},{
loader:"less-loader"
}],
//usestyle-loaderindevelopment
fallback:"style-loader"
})
}]
},
plugins:[
extractLess
]
};复制用法进口从tless-loader4开始,您现在可以选择Less的内置解析器和webpackt的解析器。
默认情况下,使用webpackt的解析器。
webpack解析器webpack提供了一种解析文件的高级机制。
less-loader应用一个Less插件,并且将所有查询参数传递给webpackresolver。
所以,你可以从node_modules导入你的less模块。
只要加一个~前缀,告诉webpack去查询模块。
@import"~bootstrap/less/bootstrap";复制重要的是只使用~前缀,因为~/会解析为主目录。
webpack需要区分bootstrap和〜bootstrap,因为CSS和Less文件没有用于导入相对文件的特殊语法。
@import"file"与@import"./file";写法相同Non-Lessimports使用webpackresolver,你可以引入任何文件类型。
你只需要一个导出有效的Less代码的loader。
通常,你还需要设置issuer条件,以确保此规则仅适用于Less文件的导入://webpack.config.js
module.exports={
...
module:{
rules:[{
test:/\.js$/,
issuer:/\.less$/,
use:[{
loader:"js-to-less-loader"
}]
}]
}
};复制解决方案较少如果你指定了这个paths选项,less-loader不会使用webpack的解析器。
在本地文件夹中无法解析的模块将在给定的内容中进行搜索paths。
这是较少'的默认行为。
paths应该是一个绝对路径的数组://webpack.config.js
module.exports={
...
module:{
rules:[{
test:/\.less$/,
use:[{
loader:"style-loader"
},{
loader:"css-loader"
},{
loader:"less-loader",options:{
paths:[
path.resolve(__dirname,"node_modules")
]
}
}]
}]
}
};复制在这种情况下,所有的webpack功能,如导入non-Less文件或别名,当然不会起作用。
插件为了使用插件,只需像下面这样简单设置plugins选项://webpack.config.js
constCleanCSSPlugin=require("less-plugin-clean-css");
module.exports={
...
{
loader:"less-loader",options:{
plugins:[
newCleanCSSPlugin({advanced:true})
]
}
}]
...
};复制提取样式表使用webpack捆绑CSS具有一些很好的优点,如引用图像和带有散列URL的字体或开发中的热模块替换。
另一方面,在生产中,根据JS执行来应用样式表不是一个好主意。
渲染可能会延迟,甚至可能会看到FOUC。
因此,将它们作为最终生产版本中的单独文件通常更好。
有两种可能性从捆绑中提取样式表:extract-loader(更简单,但专门用于css-loader的输出)extract-text-webpack-plugin(更复杂,但适用于所有使用情况)源地图要启用CSS源地图,您需要将sourceMap选项传递给less-loader和css-loader。
你webpack.config.js应该看起来像这样:module.exports={
...
module:{
rules:[{
test:/\.less$/,
use:[{
loader:"style-loader"
},{
loader:"css-loader",options:{
sourceMap:true
}
},{
loader:"less-loader",options:{
sourceMap:true
}
}]
}]
}
};复制还要检查sourceMaps示例。
如果您想编辑Chrome内部的原始Less文件,那么有一篇很好的博文。
这篇博文是关于Sass的,但它也适用于Less。
CSS模块陷入困境语句中有关Less和CSS模块的相关文件路径存在已知问题url(...)。
请参阅此问题以获取解释。
本文档系腾讯云云+社区成员共同维护,如有问题请联系[email protected]最后更新于:2017-12-18分享分享手册到朋友圈分享手册到QQ分享手册到微博复制手册链接到剪贴板分享扫描二维码扫码关注云+社区领取腾讯云代金券
延伸文章資訊
- 1less-loader | webpack 中文网
Use the css-loader or the raw-loader to turn it into a JS module and the ExtractTextPlugin to ext...
- 2Webpack 之less-loader 详解- SegmentFault 思否
将打包的less文件分离出来在官方文档看到这样一个例子: {代码...} 但是我... ... 安装. npm install --save-dev less-loader less ...
- 3P11.6-webpack配置less-loader | IT人
P11.6-webpack配置less-loader 文章目錄P11.6-webpack配置less-loader1.概述2.建立less專案2.1.建立專案2.2.配置專案3.安裝配置less...
- 4less-loader - webpack
webpack provides an advanced mechanism to resolve files. The less-loader applies a Less plugin th...
- 5less-loader | webpack - JS.ORG
Disclaimer: less-loader is a third-party package maintained by community members, it potentially ...