X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=README.md;h=9e887dcab3b2f3c5fed0bb08d05a6e802289b1c0;hb=e2b840779a66339d32ae7068c36e15a9aa041f61;hp=17fe7357f5c80152e9f53e31bce92c012fd78dbf;hpb=a42f24b85a304e128c45003b806cc5c4d551b3af;p=github%2Ffretlink%2Fpurs-loader.git diff --git a/README.md b/README.md index 17fe735..9e887dc 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,73 @@ # purs-loader -> [PureScript](http://www.purescript.org) loader for [webpack](https://github.com/webpack/webpack) +> [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 - -#### options - - - **no-prelude**: Boolean value that toggles `--no-prelude` - - Do not include the Prelude in the generated Javascript. - - **no-opts**: Boolean value that toggles `--no-opts` - - Disable all optimizations. - - **no-magic-do**: Boolean value that toggles `--no-magic-do` - - Turn off optimizations which inline calls to >>= for the Eff monad. - - **no-tco**: Boolean value that toggles `--no-tco` - - Turn off tail-call elimination. - - **runtime-type-checks**: Boolean value that toggles `--runtime-type-checks` - - Generate simple runtime type checks for function arguments with simple types. - - **verbose-errors**: Boolean value that toggles `--verbose-errors` - - Generate verbose error messages. - - **output**: String value that sets `--output=` - - Write the generated Javascript to the specified file. - ## Example -```js -var path = require('path'); - -module.exports = { - entry: './src/test', - output: { - path: path.join(__dirname, 'dist'), - filename: 'app.js' - }, - module: { - loaders: [{ +```javascript +const webpackConfig = { + // ... + loaders: [ + // ... + { test: /\.purs$/, - loader: 'purs-loader?no-prelude&output=output' - }] - }, - resolve: { - modulesDirectories: [ - 'node_modules', - 'web_modules', - 'output' - ] - } -}; + 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'], + } + } + // ... + ] + // ... +} ``` + +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') + ], +} +``` + +### Instant rebuilds (experimental) + +Experimental support for instant rebuilds using `psc-ide-server` can be enabled +via the `pscIde: true` option.