Webpack loader to generate an Angular constants module from values in your projects package.json file.
npm install ng-package-constants-loader --save-dev
Given a webpack config:
module: {
rules: [
{
// Let's take our config file by absolute url
test: path.resolve(__dirname + 'package.json'),
use: {
loader: 'ng-package-constants-loader',
options: {
moduleName: 'app.constants' // name of the angular module
configKey: 'config.all', // object to pull from package.json
wrap: 'es6' // es6, true (default), false
}
}
}
]
}
and package.json
{
...
"config": {
"string": "my string",
"integer": 12345,
"object": {"one": 2, "three": ["four"]},
"array": ["one", 2, {"three": "four"}, [5, "six"]],
"all": {
"string": "my string",
"integer": 12345,
"object": {"one": 2, "three": ["four"]},
"array": ["one", 2, {"three": "four"}, [5, "six"]]
}
...
}
include the package.json
file in your project, to be loaded by Webpack:
require('./package.json');
the loader will emit an angular module
import angular from "angular";
export default angular.module("app.constants")
.constant("string", "my string")
.constant("integer", 12345)
.constant("object", {"one":2,"three":["four"]})
.constant("array", ["one",2,{"three":"four"},[5,"six"]]);
Name | Type | Default | Description |
---|---|---|---|
moduleName |
{String} |
app.constants |
The name of the Angular Module |
createModule |
{Boolean} |
true |
Whether or not to create a new module |
configKey |
{String} |
`` | The package.json property key to load. Can be dot a separated value |
wrap |
{String} |
`` | The format of the output. See Wrap details below |
The loader will output an ES6 compliant Angular Module:
import angular from "angular";
export default angular.module("app.constants", [])
.constant("string", "my string")
.constant("integer", 12345)
.constant("object", {"one":2,"three":["four"]})
.constant("array", ["one",2,{"three":"four"},[5,"six"]]);
The loader will output an IIFE wrapped Angular Module:
(function () {
return angular.module("app.constants", [])
.constant("string", "my string")
.constant("integer", 12345)
.constant("object", {"one":2,"three":["four"]})
.constant("array", ["one",2,{"three":"four"},[5,"six"]]);
})();
The loader will output a bare Angular Module:
angular.module("app.constants", [])
.constant("string", "my string")
.constant("integer", 12345)
.constant("object", {"one":2,"three":["four"]})
.constant("array", ["one",2,{"three":"four"},[5,"six"]]);