【问题标题】:How to use less.js with node.js to watch .less files in a folder?如何使用 less.js 和 node.js 来查看文件夹中的 .less 文件?
【发布时间】:2012-03-14 08:23:40
【问题描述】:

我正在寻找一个简单的指南来设置服务器端监视和使用 less.js 和 node.js 编译文件夹中的 .less 文件。 Bryan 在this post 中写了这篇文章。

不幸的是,lesscss.org 上Server-side usage 的说明对 node.js 的新手来说有点用处。

我尝试过命令行用法:$ lessc styles.less > styles.css

我也尝试过“watchr”和“watch-less”,一切正常。但是,我正在寻找一个纯 node.js + less.js 解决方案。我相信有人能够清楚地解释如何配置 node.js 和 less.js 以查看文件夹中的 .less 文件。谢谢。

【问题讨论】:

  • 我过去使用过watch-less 文件。我认为那是节点 0.4,所以代码需要升级。

标签: node.js less watch


【解决方案1】:

您可以使用less-watch-compiler 来监视.less 文件。您不需要像 grunt 一样观看主文件。只需安装此插件:

npm install -g less-watch-compiler

yarn global add less-watch-compiler

用法:

less-watch-compiler [options] <source_dir> <destination_dir>

基本示例

 root 
 └──src
 │    └── main.less
 │    └── aux.less
 └──dist
      └── main.css

可以使用以下命令编译项目:

less-watch-compiler src dist main.less

基本示例 2

less-watch-compiler.config.json

{
    "watchFolder": "src",
    "outputFolder": "dist",
    "mainFile": "main.less"
}

可以使用以下命令编译项目:

less-watch-compiler

Source.

【讨论】:

    【解决方案2】:

    也许不是直接回答。但这是我的评论:

    通常我们在开发阶段需要这个watch,我们需要更改less文件并查看结果,而不需要在每次更改less文件时重新运行lessc命令。

    我们通过在我们的 html 中的纯 less.js 来执行此操作。如下:

    <link rel="stylesheet/less" href="/path/to/bootstrap.less">
    <script src="/path/to/less.js"></script>
    

    完成开发任务后。您只需运行一次lessc

    在开发过程中,您的页面可能需要更多时间来加载,但如果您的网站是基于 ajax 的,并且您将其添加到您的模板页面中,这没什么大不了的。

    【讨论】:

      【解决方案3】:

      我知道这是一篇旧帖子,但在我最近搜索相同内容时出现了几次。

      我已经从 jonycheung 分叉并更新了代码 - 并提交了合并请求。

      更新: jonycheung 已接受合并请求,因此他的原始代码现已更新

      同时,代码可以在这里找到:

      https://github.com/mikestreety/Dead-Simple-LESS-Watch-Compiler

      我也一直在研究和开发一个纯 bash 脚本,它使用 lessc,但不需要节点脚本来运行:

      https://github.com/mikestreety/less-watch

      【讨论】:

      • 嗯.. 需要看看你在那里写了什么;)我实际上对带有选项gist.github.com/pixelass/7964010的单个文件做了类似的事情@
      • 对不起 - 你需要看看还是我需要看看我写的东西?你的脚本看起来非常棒!很遗憾我们搬到了 Sass ;)
      • 是的,我必须看看你写的东西;)我做了一个 github repo:github.com/pixelass/lessc-bash
      • @mikestreety - inotifytools 的安装说明不包括 Windows。它说了一些关于编译的事情,我什至不知道如何去做。放弃了,不想从网上编译奇怪的代码。
      【解决方案4】:

      老实说,我见过很多相同的主题和答案。

      如果你和我一样,不想要更多的代码膨胀,那么只需下载一个适用于 Win/Mac/Nix 的 LESS 应用程序,它会在你每次保存 .less 文件时自动编译。

      老实说,我认为这会减少服务器的负载,因为此时您只需要上传已编译和缩小的文件。

      【讨论】:

      • “只需下载 LESS 应用程序”... LESS 应用程序是什么?链接在哪里?
      • 我原则上同意,但在建议这样的应用程序之前,这不应该有任何投票。我搜索了一个得到这个问题的人!
      【解决方案5】:

      您可以使用带有 -e 参数的 supervisor 来提供观察的扩展:

      nohup supervisor -e 'js|ejs|less' $APP_DIR/app.js  1>$APP_DIR/log/app.log 2>&1 &
      echo $! > $APP_DIR/pid/app.pid;
      

      取自节点启动脚本:https://github.com/chovy/node-startup

      这个命令的更简单的版本是:

      supervisor -e 'js|ejs|less' app.js
      

      【讨论】:

        【解决方案6】:

        我写了一些你正在寻找的东西。该脚本将在 watch 文件夹中查找 .less 文件并将它们编译到输出文件夹中。您需要做的就是指定要观看的文件夹和输出文件夹。

        nodeless-watch-compiler.js FOLDER_TO_WATCH FOLDER_TO_OUTPUT

        https://github.com/jonycheung/Dead-Simple-LESS-Watch-Compiler

        它会跳过查看名称以下划线或句点开头的文件。

        我为我的开发过程编写了这个,但它仍然可以在服务器上运行。但是,您可能需要重新考虑在实时服务器上不断查看文件夹以进行更改。这是一项昂贵的手术。

        【讨论】:

          【解决方案7】:

          我创建了演示项目来展示它是如何工作的。你可以在这里找到它https://github.com/corpix/watcherDemo

          clone后进入项目目录,执行npm install安装less Node.js模块。 尝试运行index.js并将.less文件更改为less_files/目录,修改后的文件将被编译并放入css_files/

          【讨论】:

          • 谢谢,这正是我一直在寻找的。​​span>
          • 如果您使用@import 规则,它似乎会失败
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-08
          • 2021-12-22
          相关资源
          最近更新 更多