Install with [npm](https://npmjs.org/package/purs-loader).
```
-// For PureScript 0.9 and newer
+// For PureScript 0.11 and newer
npm install purs-loader --save-dev
+// For PureScript 0.9 and 0.10
+npm install purs-loader@purescript-0.9 --save-dev
+
// For PureScript 0.8
npm install purs-loader@purescript-0.8 --save-dev
```
```javascript
const loaderConfig = {
- psc: 'psc',
+ psc: null, // purs compile
pscArgs: {},
- pscBundle: 'psc-bundle',
+ pscBundle: null, // purs bundle
pscBundleArgs: {},
pscIde: false, // instant rebuilds using psc-ide-server (experimental)
- pscIdeArgs: {}, // for example, to use different psc-ide-server port: {port: 4088}
- pscIdeServerArgs: {}, // for example, to change the port { port: 4088 }
+ pscIdeClient: null, // purs ide client
+ pscIdeClientArgs: {}, // for example, to use different port {port: 4088}
+ pscIdeServer: null, // purs ide server
+ pscIdeServerArgs: {}, // for example, to change the port {port: 4088}
+ pscIdeRebuildArgs: {} // for example, for sourcemaps {codegen: ['js', 'sourcemaps']}
pscIdeColors: false, // defaults to true if psc === 'psa'
- pscPackage: false,
+ pscPackage: false, // include dependencies from psc-package
+ spago: false, // include dependencies from spago
bundleOutput: 'output/bundle.js',
bundleNamespace: 'PS',
bundle: false,
output: 'output',
src: [
path.join('src', '**', '*.purs'),
- // if pscPackage = false
- path.join('bower_components', 'purescript-*', 'src', '**', '*.purs')
// if pscPackage = true
// source paths reported by `psc-package sources`
+ // if spago = true
+ // source paths reported by `spago sources`
+ // if pscPackage = false and spago = false
+ path.join('bower_components', 'purescript-*', 'src', '**', '*.purs')
]
}
```
Set `pscPackage` query parameter to `true` to enable `psc-package` support. The `psc-package`-supplied source paths
will be appended to `src` parameter.
+### `spago` support (experimental)
+
+Set `spago` query parameter to `true` to enable `spago` support. The `spago`-supplied source paths
+will be appended to `src` parameter.
+
### Troubleshooting
#### Slower webpack startup after enabling psc-ide support?
This is caused when the loader tries to spawn a binary that does not exists
(`file or directory not found`). If you call webpack like `webpack` or
-`webpack --watch`, then you need to ensure that all required binaries that the
+`webpack --watch`, then ensure that all required binaries that the
loader depends on are available in your `$PATH`.
-If you use `npm run` and `npm start` on NixOS, then it will first attempt to find
-binaries in `node_packages/.bin`. If you have the compiler installed through `npm`
-and it finds it there, this will cause `ENOENT`on Nix, because
-[the binary needs to be patched first, because npm will install the binary that is
-linked with /lib64/ld-linux-x86-64.so.2 - a file that will not exist at that path in
-NixOS](https://github.com/ethul/purescript-webpack-example/issues/5#issuecomment-282492131).
+If you run webpack through an npm script (e.g., npm run or npm start) on NixOS,
+then it will first attempt to find binaries in `node_packages/.bin`.
+If you have the compiler installed through `npm` and it finds it there, this will
+cause `ENOENT`on Nix, because [the binary needs to be patched first, but npm will
+install the binary that is linked with /lib64/ld-linux-x86-64.so.2 - a file that
+will not exist at that path in NixOS](https://github.com/ethul/purescript-webpack-example/issues/5#issuecomment-282492131).
The solution is to simply use the compiler from `haskellPackages.purescript` and
make sure that it's available in `$PATH`. For more information about how to make
it work on Nix, see [Purescript Webpack Example](https://github.com/ethul/purescript-webpack-example#using-globally-installed-binaries)