如何让 Babel 处理 LESS 文件?

Posted

技术标签:

【中文标题】如何让 Babel 处理 LESS 文件?【英文标题】:How to make Babel handle LESS files? 【发布时间】:2017-10-04 22:38:35 【问题描述】:

我有一个带有 NodeJS 的服务器端渲染设置的同构 React 应用程序。我正在使用 Babel 和 Webpack,除了一个问题之外,它们工作得很好:

Babel 无法处理require('somefile.less')

出于这个原因,我使用 Webpack 来编译后端和前端代码,因为 Webpack 有很好的 CSS 和 LESS 加载器,而且它不会在看到 CSS 或 LESS 文件时吓坏了。但是,这种方法也有其自身的问题:

服务器启动时间增加了很多,因为 webpack 必须编译整个 后端优先。

当我为生产部署代码时这很好,但在开发环境中,它确实会损害生产力。

另一方面,babel-node 实用程序相比之下超级快,只要我能让它处理 CSS/LESS 文件。因此我的问题是:我们可以让 Babel 使用 CSS/LESS 文件吗?

【问题讨论】:

我相信你需要 Webpack 才能使用require。你需要一个像 Webpack、Browserify 或 Node 提供的模块环境来加载模块。 Babel 只是一个转译器,它不会自己处理那部分。 @PedroCastilho 你说得对,我们甚至需要 webpack 才能在前端使用 require。但在这里,我的问题是关于后端转译。 你的意思是像服务器端渲染这样的东西吗? 是的,问题在于后端“需要”LESS 文件(服务器端渲染)。 您可以使用 Gulp 或其他构建系统将 Less 编译为 CSS,并使用 Juice 将编译后的 CSS 内联到您的 html 中。整个管道可以使用 Gulp 自动化。 【参考方案1】:

Babel is a javascript compiler

Babel 是一个工具链,主要用于在旧浏览器或环境中将 ECMAScript 2015+ 代码转换为向后兼容的 JavaScript 版本。

所以答案是。 Babel 仅适用于 JS 文件。

【讨论】:

以上是关于如何让 Babel 处理 LESS 文件?的主要内容,如果未能解决你的问题,请参考以下文章

webpack一步步实现实时打包打包vue打包csslessscss文件babel用法

vant-ui 如何定制主题

Vue 开发实战实战篇 # 28:如何自定义Webpack和Babel配置

babel-plugin-import 实现按需引入

less学习:基础语法总结

单独安装Babel或者Less