## Install
-Install with [npm](https://npmjs.org/package/purs-loader)
+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
-###### `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.
+###### `bundleOutput` (String)
-###### `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.
-
-###### `requirePath` (String)
-
-Sets `--require-path=<string>` that specifies the path prefix to use for `require()` calls in the generated JavaScript.
-
-###### `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`.
+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 path = require('path');
+var PurescriptWebpackPlugin = require('purescript-webpack-plugin');
-var srcs = ['src[]=bower_components/purescript-*/src/**/*.purs', 'src[]=src/**/*.purs'];
+var src = ['bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs'];
-var ffis = ['ffi[]=bower_components/purescript-*/src/**/*.js'];
-
-var output = 'output';
+var ffi = ['bower_components/purescript-*/src/**/*.js', 'src/**/*FFI.js'];
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',
- // The output directory is specified here to allow PureScript files in
- // your source to import other PureScript modules in your source.
- output
+ 'bower_components'
];
var config
, filename: 'bundle.js'
}
, module: { loaders: [ { test: /\.purs$/
- , loader: 'purs-loader?output=' + output + '&' + srcs.concat(ffis).join('&')
+ , loader: 'purs-loader'
} ] }
- , resolve: { modulesDirectories: modulesDirectories
- , extensions: ['', '.js', '.purs']
- }
- , resolveLoader: { root: path.join(__dirname, 'node_modules') }
+ , resolve: { modulesDirectories: modulesDirectories }
+ , plugins: [ new PurescriptWebpackPlugin({src: src, ffi: ffi}) ]
}
;
```
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.