> [PureScript](http://www.purescript.org) loader for [webpack](http://webpack.github.io)
+- Supports hot-reloading and rebuilding of single source files
+- Dead code elimination using the `bundle` option
+- Colorized build output using `purescript-psa` and the `psc: "psa"` option
+
## Install
-Install with [npm](https://npmjs.org/package/purs-loader)
+Install with [npm](https://npmjs.org/package/purs-loader).
```
npm install purs-loader --save-dev
```
-## Options
-
-###### `noPrelude` (Boolean)
-
-Toggles `--no-prelude` that omits the Prelude.
-
-###### `noTco` (Boolean)
-
-Toggles `--no-tco` that disables tail-call optimizations.
-
-###### `noMagicDo` (Boolean)
-
-Toggles `--no-magic-do` that disables optimizations overloading the do keyword generating efficient code for the `Eff` monad.
-
-###### `noOpts` (Boolean)
-
-Toggles `--no-opts` that skips the optimization phase.
-
-###### `verboseErrors` (Boolean)
-
-Toggles `--verbose-errors` that displays verbose error messages.
-
-###### `comments` (Boolean)
-
-Toggles `--comments` that includes comments in generated code.
-
-###### `output` (String)
-
-Sets `--output=<string>` the specifies the output directory, `output` by default.
-
-###### `noPrefix` (Boolean)
-
-Toggles `--no-prefix` that does not include the comment header.
+## Example
-###### `src` (String Array)
+```javascript
+const webpackConfig = {
+ // ...
+ loaders: [
+ // ...
+ {
+ test: /\.purs$/,
+ loader: 'purs-loader',
+ exclude: /node_modules/,
+ query: {
+ psc: 'psa',
+ src: ['bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs'],
+ ffi: ['bower_components/purescript-*/src/**/*.js', 'src/**/*.js'],
+ }
+ }
+ // ...
+ ]
+ // ...
+}
+```
-Specifies PureScript source paths to be globbed for `.purs` files. By default, `bower_components` is search. Additional paths may be specified using this option. This option is specified as `src[]=path`.
+Refer to the [purescript-webpack-example](https://github.com/ethul/purescript-webpack-example) for a more detailed example.
+
+### Options
+
+Default options:
+
+```javascript
+{
+ psc: 'psc',
+ pscArgs: {},
+ pscBundle: 'psc-bundle',
+ pscBundleArgs: {},
+ pscIde: false, // instant rebuilds using psc-ide-server (experimental)
+ pscIdeColors: false, // defaults to true if psc === 'psa'
+ bundleOutput: 'output/bundle.js',
+ bundleNamespace: 'PS',
+ bundle: false,
+ warnings: true,
+ output: 'output',
+ src: [
+ path.join('src', '**', '*.purs'),
+ path.join('bower_components', 'purescript-*', 'src', '**', '*.purs')
+ ],
+ ffi: [
+ path.join('src', '**', '*.js'),
+ path.join('bower_components', 'purescript-*', 'src', '**', '*.js')
+ ],
+}
+```
-## Example
+### Instant rebuilds (experimental)
-See the [example](https://github.com/ethul/purs-loader/tree/master/example) directory for a complete example.
+Experimental support for instant rebuilds using `psc-ide-server` can be enabled
+via the `pscIde: true` option.