X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=README.md;h=e7e0b458e2da7d57a850f1a7e0ceb8af264d6c4f;hb=d34bc169e84d52b28279786ff400daced5fd8b8a;hp=a459059db1f9bbcf41eec373bfbeea66a21859a2;hpb=63d6a244462d050e119bde54a7063bae8a17e987;p=github%2Ffretlink%2Fpurs-loader.git diff --git a/README.md b/README.md index a459059..e7e0b45 100644 --- a/README.md +++ b/README.md @@ -2,54 +2,70 @@ > [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). -This loader works in conjunction with the [PureScript webpack plugin](https://npmjs.org/package/purescript-webpack-plugin). Ensure the plugin is installed and configured accordingly. - ``` npm install purs-loader --save-dev ``` -## Options - -###### `pscBundle` (String) - -Relative path to the bundled JavaScript file generated by the `PurescriptWebpackPlugin`. The default value is `output/bundle.js`. - ## Example -```js -// webpack.config.js -'use strict'; - -var PurescriptWebpackPlugin = require('purescript-webpack-plugin'); - -var src = ['bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs']; - -var ffi = ['bower_components/purescript-*/src/**/*.js', 'src/**/*FFI.js']; - -var modulesDirectories = [ - 'node_modules', - 'bower_components' -]; - -var config - = { entry: './src/entry' - , output: { path: __dirname - , pathinfo: true - , filename: 'bundle.js' - } - , module: { loaders: [ { test: /\.purs$/ - , loader: 'purs-loader' - } ] } - , resolve: { modulesDirectories: modulesDirectories } - , plugins: [ new PurescriptWebpackPlugin({src: src, ffi: ffi}) ] +```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'], + } } - ; + // ... + ] + // ... +} +``` -module.exports = config; +### 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') + ], +} ``` -See the [example](https://github.com/ethul/purs-loader/tree/master/example) directory for a complete example. +### Instant rebuilds (experimental) + +Experimental support for instant rebuilds using `psc-ide-server` can be enabled +via the `pscIde: true` option.