X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=README.md;h=9e887dcab3b2f3c5fed0bb08d05a6e802289b1c0;hb=a9a26a84a97102474501f5463d529ae35399cb5a;hp=d243381aa0b11dbe5131d78433920299f242bb76;hpb=fc72dc01dbd79d531ca4aa73ad4e719a40a58f98;p=github%2Ffretlink%2Fpurs-loader.git diff --git a/README.md b/README.md index d243381..9e887dc 100644 --- a/README.md +++ b/README.md @@ -2,52 +2,72 @@ > [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=` 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.