squiggle/packages/cli/README.md

50 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2022-06-18 04:45:58 +00:00
## Squiggle CLI
This package can be used to incorporate a very simple `import` system into Squiggle.
2022-06-20 15:53:19 +00:00
To use, write special files with a `.squiggleU` file type. In these files, you can write lines like,
2022-06-18 04:45:58 +00:00
```
@import(models/gdp_over_time.squiggle, gdpOverTime)
gdpOverTime(2.5)
```
2022-06-20 15:53:19 +00:00
The imports will be replaced with the contents of the file in `models/gdp_over_time.squiggle` upon compilation. The `.squiggleU` file will be converted into a `.squiggle` file with the `import` statement having this replacement.
2022-06-18 04:45:58 +00:00
## Running
### `npx squiggle-cli-experimental compile`
2022-06-20 15:53:19 +00:00
2022-06-18 04:45:58 +00:00
Runs compilation in the current directory and all of its subdirectories.
### `npx squiggle-cli-experimental watch`
2022-06-20 15:53:19 +00:00
Watches `.squiggleU` files in the current directory (and subdirectories) and rebuilds them when they are saved. Note that this will _not_ rebuild files when their dependencies are changed, just when they are changed directly.
## Further instructions
The above requires having node, npm and npx. To install the first two, see [here](https://nodejs.org/en/), to install npx, run:
```
npm install -g npx
```
Alternatively, you can run the following without the need for npx:
```
npm install squiggle-cli-experimental
node node_modules/squiggle-cli-experimental/index.js compile
```
or you can add a script to your `package.json`, like:
2022-10-12 01:58:35 +00:00
```
...
scripts: {
"compile": "squiggle-cli-experimental compile"
}
...
2022-10-12 01:58:35 +00:00
```
This can be run with `npm run compile`. `npm` knows how to reach into the node_modules directly, so it's not necessary to specify that.