# @soleil-se/build-js

Skript för att bygga och ladda upp globala skript till Sitevisions filarkiv.

> **OBS**
>
> Det är oftast bättre att bygga en WebApp med [@soleil-se/build-app](/build/app) om man har en så pass komplex lösning att JavaScript behöver bundlas.\
> Enklare skript kan laddas upp som snippets med hjälp av [@soleil-se/build-snippets](/build/snippets).

## Installation

```sh
npm install @soleil-se/build-js --save-dev
```

## Användning

Lägg till följande i `package.json` för att kunna starta skriptet.

**package.json**

```json
{
  "scripts": {
    "js": "build-js"
  }
}
```

| Kommando           | Beskrivning                                                                                      |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| `npm run js`       | Bygger ihop och laddar upp de kompilerade JS-filerna.                                            |
| `npm run js start` | Bygg initialt och starta sedan övervakning av filer för att bygga ihop och ladda upp JS-filerna. |
| `npm run js watch` | Starta övervakning av filer för att bygga ihop och ladda upp de kompilerade JS-filerna.          |

## Argument

Följande argument är tillgängliga.

* `--input` - Sökväg till fil som ska byggas, `npm run js -- --input ./foo/bar/index.js`.

## Inställningar

Skriptet använder följande inställningar:

* [Miljö](/build/config/#milj%C3%B6)
* [Browserslist](/build/config/#browserslist)
* [Globals](/build/config/#globals)

### Input

Angen vilka filer som ska byggas i `project_config.json`.

**project\_config.json**

```json
{
  "js": {
    "input": ["./client_src/js/bundle1/index.js", "./client_src/js/bundle2/index.js"]
  }
}
```

## Standardstruktur

Standardstruktur om inget annat anges:

* `./client_src/js/bundle/index.js`
* `./client_src/js/vendor/index.js`

- client\_src

  * js

    * bundle

      * index.js

    * vendor

      * index.js

- server\_src/

  * …

- …