]> git.immae.eu Git - github/fretlink/purs-loader.git/blobdiff - README.md
Remove `require-path`, use relative paths for PS
[github/fretlink/purs-loader.git] / README.md
index 17fe7357f5c80152e9f53e31bce92c012fd78dbf..bef16af0be7f7f9b7ff0dab2d82737bf77055f48 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # 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)
 
 ## Install
 
@@ -12,46 +12,87 @@ 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=<string>`
-  - Write the generated Javascript to the specified file.
+###### `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.
+
+###### `ffi` (String Array)
+
+Specifies the PureScript FFI files setting `--ffi=<string>`. Glob syntax is supported. This option is specified as `ffi[]=path`.
+
+###### `src` (String Array)
+
+Specifies the PureScript source files. Glob syntax is supported. This option is specified as `src[]=path`.
 
 ## Example
 
 ```js
+// webpack.config.js
+
 var path = require('path');
 
-module.exports = {
-  entry: './src/test',
-  output: {
-    path: path.join(__dirname, 'dist'),
-    filename: 'app.js'
-  },
-  module: {
-    loaders: [{
-      test: /\.purs$/,
-      loader: 'purs-loader?no-prelude&output=output'
-    }]
-  },
-  resolve: {
-    modulesDirectories: [
-      'node_modules',
-      'web_modules',
-      'output'
-    ]
-  }
-};
+var srcs = ['src[]=bower_components/purescript-*/src/**/*.purs', 'src[]=src/**/*.purs'];
+
+var ffis = ['ffi[]=bower_components/purescript-*/src/**/*.js'];
+
+var output = 'output';
+
+var modulesDirectories = [
+  'node_modules',
+  // The bower component for purescript-prelude is specified here to
+  // allow JavaScript files to require the 'Prelude' module globally.
+  'bower_components/purescript-prelude/src'
+];
+
+var config
+  = { entry: './src/entry'
+    , output: { path: __dirname
+              , pathinfo: true
+              , filename: 'bundle.js'
+              }
+    , module: { loaders: [ { test: /\.purs$/
+                           , loader: 'purs-loader?output=' + output + '&' + srcs.concat(ffis).join('&')
+                           } ] }
+    , resolve: { modulesDirectories: modulesDirectories
+               , extensions: ['', '.js', '.purs']
+               }
+    , resolveLoader: { root: path.join(__dirname, 'node_modules') }
+    }
+    ;
+
+module.exports = config;
 ```
+
+See the [example](https://github.com/ethul/purs-loader/tree/master/example) directory for a complete example.
+
+## Notes
+
+A `.psci` file is generated during each run of the loader.