Install
npm i -D val-loader
Usage
The module that is loaded with this loader must stick to the following interfaces
Module Interface
The loaded module must export a function as default
export with the following Function Interface
module {...};
Modules transpiled by Babel are also supported
{...};
Function Interface
The function will be called with the loader options
and must either return
{Object}
Following the Object Interface
{Promise}
Resolving to an {Object}
following the Object Interface
Object Interface
Name | Type | Default | Description |
---|---|---|---|
code |
{String\|Buffer} |
undefined |
(Required) The code that is passed to the next loader or to webpack |
sourceMap |
{Object} |
undefined |
(Optional) Will be passed to the next loader or to webpack |
ast |
{Array<{Object}>} |
undefined |
(Optional) An Abstract Syntax Tree that will be passed to the next loader. Useful to speed up the build time if the next loader uses the same AST |
dependencies |
{Array<{String}>} |
[] |
An array of absolute, native paths to file dependencies that need to be watched for changes |
contextDependencies |
{Array<{String}>} |
[] |
An array of absolute, native paths to directory dependencies that need to be watched for changes |
cacheable |
{Boolean} |
false |
Flag whether the code can be re-used in watch mode if none of the dependencies have changed |
Options
val-loader
itself has no options. The options are passed as they are (without cloning them) to the exported function
Examples
If you have a module like this
answer.js
{ return code: 'module.exports = 42;' }; moduleexports = answer;
you can use the val-loader to generate source code on build time
webpack.config.js
moduleexports = ... module: rules: test: require use: loader: 'val-loader' ;
Complete
A complete example of all available features looks like this
answer.js
const ask = ;const generate = ; { return ;} moduleexports = answer;
webpack.config.js
moduleexports = ... module: rules: test: require use: loader: 'val-loader' options: question: 'What is the meaning of life?' ;
Maintainers
Juho Vepsäläinen |
Joshua Wiens |
Kees Kluskens |
Johannes Ewald |