]> git.immae.eu Git - github/fretlink/purs-loader.git/blobdiff - README.md
Add information about potentially slowing down webpack startup
[github/fretlink/purs-loader.git] / README.md
index dcbedf285102349f9d2a002448af136529f1625d..292ab85b53b0048b71102970f42b1890baf4a73a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -2,29 +2,88 @@
 
 > [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).
 
 ```
+// For PureScript 0.9 and newer
 npm install purs-loader --save-dev
-```
 
-## 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.
- - **verbose-errors**: Boolean value that toggles `--verbose-errors`
-  - Generate verbose error messages.
- - **output**: String value that sets `--output=<string>`
-  - Write the generated Javascript to the specified file.
+// Fore PureScript 0.8
+npm install purs-loader@purescript-0.8 --save-dev
+```
 
 ## Example
 
-See the [example](https://github.com/ethul/purs-loader/tree/topic/bower-components/example) directory for a complete example.
+```javascript
+const webpackConfig = {
+  // ...
+  loaders: [
+    // ...
+    {
+      test: /\.purs$/,
+      loader: 'purs-loader',
+      exclude: /node_modules/,
+      query: {
+        psc: 'psa',
+        src: ['bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs']
+      }
+    }
+    // ...
+  ]
+  // ...
+}
+```
+
+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)
+  pscIdeArgs: {}, // for example, to use different psc-ide-server port: {port: 4088}
+  pscIdeServerArgs: {}, // for example, to change the port { port: 4088 }
+  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')
+  ]
+}
+```
+
+### Instant rebuilds (experimental)
+
+Experimental support for instant rebuilds using `psc-ide-server` can be enabled
+via the `pscIde: true` option.
+You can use an already running `psc-ide-server` instance by specifying the port in `pscIdeArgs`,
+if there is no server running this loader will start one for you.
+
+
+#### Slower webpack startup after using purs-loader ?
+
+By default, the psc-ide-server will be passed the globs from query.src, this is
+helpful for other tools using psc-ide-server (for example IDE plugins), however
+it might result in a slower initial webpack startup time (rebuilds are not
+affected). To override the default behaviour, add:
+`pscIdeServerArgs: { "_": ['your/*globs/here'] }` to the loader config
+
+
+
+