我的朋友设计师正在手动编译他的 LESS 文件并使用 Coda(远程站点)上传它,花费了大量宝贵的时间。他问我:
是否可以自动检测 Linux 服务器上的文件更改并毫不延迟地进行编译?
我制作了一个脚本并发布了详细信息:
首先,您需要通过在控制台中输入以下内容在服务器上安装“npm”:
sudo apt-get install npm inotify-tools
sudo npm install -g less
sudo nano /usr/local/bin/lesscwatch
将以下内容粘贴到文件中:
#!/bin/bash
# Detect changes in .less file and automatically compile into .css
[ "$2" ] || { echo "Specify both .less and .css files"; exit 1; }
inotifywait . -m -e close_write | while read x op f; do.
if [ "$f" == "$1" ]; then.
lessc $f > $2 && echo "`date`: COMPILED";.
fi
done
保存,退出,然后执行:
sudo chmod +x /usr/local/bin/lesscwatch
你们都完成了。下次您需要使用 LESS 文件时,您需要打开终端(Coda 内置),转到文件的文件夹(使用 cd)并执行以下命令:
lesscwatch main.less main.css
它将输出有关成功编译或错误的信息。享受。
我已经修改了@romaninsh 的解决方案,以便在更改目录中的任何 Less 文件时重新编译。我还在编译 Less 文件之前添加了一个 echo 语句,以提供一些验证,以在编译需要几秒钟的情况下检测到更改。
/usr/local/bin/lesscwatch:
#!/bin/bash
# Detect changes in .less file and automatically compile into .css
[ "$2" ] || { echo "Specify both .less and .css files"; exit 1; }
inotifywait . -m -e close_write | while read x op f; do
if [[ "$f" == *".less" ]]; then
echo "Change detected. Recompiling...";
lessc $1 > $2 && echo "`date`: COMPILED";
fi
done
这更接近地模仿了我习惯的 Mac 版 Less.app 的行为。
使用 Less 进行开发时,我通常在项目的 /style 目录中有一堆文件,并使用覆盖将所有内容编译成单个 .css 文件。
使用示例:
base.less:
@import "overrides.less";
@import "variables.less";
body {
...
}
用法同上
lesscwatch base.less base.css
我想要 bash 脚本,但我在使用 sublime 和 ubuntu 12.10 时遇到了一些麻烦。好吧,这些脚本和Ian_Marcinkowski做的一样,但我确信它在第一次事件后继续工作,并监视所有文件(以某种方式崇高文本,使用 tmp 文件,并且不要更改原始文件 - !?!)。
#!/bin/bash
# Detect changes in .less file and automatically compile into .css
[ "$2" ] || { echo "Specify both .less and .css files"; exit 1; }
inotifywait -m -e close_write . | while read x op f; do
echo $f
echo "Change detected. Recompiling...";
lessc $2 > $3 && echo "`date`: COMPILED";
done
像这样调用脚本:
./monitor.sh </path/to/dir> <main.less> <main.css>
这对我有用:
sudo apt install node-lessenter
2.这是如何使用它。
lessc style.less style.css