X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=README.md;h=91ccfc0f061a592aa716dd09423316da12674112;hb=806d2915e6579d3dce38de8f2b40b85466ceda05;hp=9e887dcab3b2f3c5fed0bb08d05a6e802289b1c0;hpb=a9a26a84a97102474501f5463d529ae35399cb5a;p=github%2Ffretlink%2Fpurs-loader.git diff --git a/README.md b/README.md index 9e887dc..91ccfc0 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,11 @@ Install with [npm](https://npmjs.org/package/purs-loader). ``` +// For PureScript 0.9 and newer npm install purs-loader --save-dev + +// For PureScript 0.8 +npm install purs-loader@purescript-0.8 --save-dev ``` ## Example @@ -27,8 +31,7 @@ const webpackConfig = { exclude: /node_modules/, query: { psc: 'psa', - src: ['bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs'], - ffi: ['bower_components/purescript-*/src/**/*.js', 'src/**/*.js'], + src: ['bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs'] } } // ... @@ -44,30 +47,72 @@ Refer to the [purescript-webpack-example](https://github.com/ethul/purescript-we Default options: ```javascript -{ +const loaderConfig = { 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' + pscPackage: false, bundleOutput: 'output/bundle.js', bundleNamespace: 'PS', bundle: false, warnings: true, + watch: false, // indicates if webpack is in watch mode output: 'output', src: [ path.join('src', '**', '*.purs'), + // if pscPackage = false path.join('bower_components', 'purescript-*', 'src', '**', '*.purs') - ], - ffi: [ - path.join('src', '**', '*.js'), - path.join('bower_components', 'purescript-*', 'src', '**', '*.js') - ], + // if pscPackage = true + // source paths reported by `psc-package sources` + ] } ``` -### Instant rebuilds (experimental) +### `psc-ide` support (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. + +### `psc-package` support (experimental) + +Set `pscPackage` query parameter to `true` to enable `psc-package` support. The `psc-package`-supplied source paths +will be appended to `src` parameter. + +### Troubleshooting + +#### Slower webpack startup after enabling psc-ide support? + +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 + +#### Errors not being displayed in watch mode? + +When the `watch` option is set to `true`, psc errors are appended to +webpack's compilation instance errors array and not passed back as an +error to the loader's callback. This may result in the error not being +reported by webpack. To display errors, the following plugin may be added +to the webpack config. + +```javascript +const webpackConfig = { + // ... + plugins: [ + function(){ + this.plugin('done', function(stats){ + process.stderr.write(stats.toString('errors-only')); + }); + } + ] + // ... +} +```