less-watcher/README.md

115 lines
3.4 KiB
Markdown
Raw Normal View History

2023-07-29 22:18:34 +00:00
# Less watch for .less files
2023-07-29 23:01:10 +00:00
This is a super-light npm package that watches .less files and actively compiles them into .css files
2023-07-29 22:18:34 +00:00
---
2023-07-29 22:59:59 +00:00
## Prerequisites
You need `less` npm package insalled. you can add it your project by running:
```bash
npm install less
```
2023-07-29 23:07:10 +00:00
## Installation
To install this package simply run:
```bash
npm install lessc-watcher
```
2023-07-29 22:18:34 +00:00
## How to use
There are few different ways to run your less compiler
2023-07-30 06:15:40 +00:00
### Basic usage
2023-07-29 22:18:34 +00:00
```bash
2023-07-29 23:28:54 +00:00
npx lessc-watcher --src ./folder --dst ./dist/less.css
2023-07-29 22:18:34 +00:00
```
This traverses the folder and searches for a `main.less` file. This file serves as the source for your bundled `.css` file. If you want to target a specific file, use:
```bash
2023-07-29 23:28:54 +00:00
npx lessc-watcher --src ./folder/src.less --dst ./dist/less.css
2023-07-29 22:18:34 +00:00
```
Or you can just watch an entire folder. In this case less-watch will searc for an entry file named `main.less`. Without this entry file, your compiler wouldn't work.
```bash
2023-07-29 23:28:54 +00:00
npx lessc-watcher --src ./folder --dst ./dist/less.css
2023-07-29 22:18:34 +00:00
```
2023-07-30 00:20:33 +00:00
**_NOTE:_** If you only provide a destination path, without specifying the exact file name in `.css`, your files will be compiled to a css file named `_main.css`. This is done to prevent conflicts with another possible `main.css` file.
2023-07-30 06:15:40 +00:00
### Adding more source folders
2023-07-29 22:18:34 +00:00
You can add more source folders by using a comma(`,`) separator. Example:
```bash
2023-07-29 23:28:54 +00:00
npx lessc-watcher --src ./folder-1,./folder-2 --dst ./dist/folder-1.css,./dist/folder-2.css
2023-07-29 22:18:34 +00:00
```
**_NOTE:_** Your `--dst` input must match the number of comma-separated folders in your `src` input.
2023-07-30 06:15:40 +00:00
## Advanced Features
2023-07-29 22:18:34 +00:00
2023-07-29 23:07:10 +00:00
lessc-watcher has more advanced features to better fine-tune your files
2023-07-29 22:18:34 +00:00
2023-07-30 06:15:40 +00:00
### Ignore files
2023-07-29 22:18:34 +00:00
Ignore files/folders by enlosing the names in braces. Eg `(general).less`
2023-07-30 06:15:40 +00:00
### Compile specific files
2023-07-29 22:18:34 +00:00
If you're watching an entire folder, you can compile specific files in that folder to a stanalone file. Example if you create a file named `[test].less` in your watch directory, in your distribution directory there will be an extra file named `test.css`.
2023-07-30 06:12:09 +00:00
## Using a `lesscw.config.json` file
You can use a `lesscw.config.json` file to add your files instead of using the CLI interface. For this to work your `lesscw.config.json` file must be located in the root directory of your project, and it must contain at least one `src` and one `dst` entry
### Basic Config JSON
```json
{
"src": "./folder",
"dst": "./dist/less.css"
}
```
This works the same as running `npx lessc-watcher --src ./folder --dst ./dist/less.css` in your terminal. Instead you only need to run:
```bash
npx lessc-watcher
```
### Using multiple sources and destinations
```json
{
"src": ["./folder", "./folder-2", "./folder/sub-folder/admin.less"],
"dst": ["./dist/less.css", "./dist/folder-2/less.css", "./dist/sub-folder.css"]
}
```
Like the CLI paradigm, the number of paths in the `src` array must match the `dst array`. And note that you can use multiple different folders with multiple different destinations.
### Using a `srcDst` cofiguration
ALternative to the `src` and `dst` paths, you can provide a `srcDst` key instead, this will contain an array of key-value pairs as follows
```json
{
"srcDst": [
{
"src": "./folder",
"dst": "./folder-2"
}
]
}
```
**_NOTE:_** If you provide a config file and still add `--src` and `--dst` arguments in your terminal, the terminal source and distributuion arguments will be ignored.