gulp-ng-constant-fork
v0.4.1
Published
Gulp plugin for dynamic generation of angular constant modules. Forked version of https://github.com/guzart/gulp-ng-constant with extra options.
Downloads
461
Maintainers
Readme
gulp-ng-constant-fork
Information
Usage
This plugin is a fork of guzarts plugin gulp-ng-constant so credits to him. Use this in the same way as the original plugin. This plugin was created to solve the deps false issue and the problem that the plugin cannot be called without referencing a config.json file. Plus it also ads a interpolation option used by lodash to detect data property values to inject in the templates.
configuration in gulpfile.js
gulpfile.js
var ngConstant = require('gulp-ng-constant-fork');
gulp.task('config', function () {
ngConstant({
dest: 'app.config.js',
name: 'my.module.config',
noFile: true,
deps: false,
constants: { ENV: 'dev' }
})
// Writes app.config.js to dist/ folder
.pipe(gulp.dest('dist'));
});
dist/app.config.js (output)
angular.module("my.module.config")
.constant("ENV", "dev");
configuration in gulpfile.js
gulpfile.js
var ngConstant = require('gulp-ng-constant-fork');
gulp.task('config', function () {
ngConstant({
dest: 'app.config.js',
name: 'my.module.config',
noFile: true,
deps: false,
interpolate: /\{%=(.+?)%\}/g,
wrap: '"use strict";\n// DO NOT EDIT THIS FILE, EDIT THE GULP TASK SETTINGS INSTEAD WHICH GENERATES THIS FILE\n<%= __ngModule %>',
constants: { ENV: 'dev' }
})
// Writes app.config.js to dist/ folder
.pipe(gulp.dest('dist'));
});
dist/app.config.js (output)
"use strict";
// DO NOT EDIT THIS FILE, EDIT THE GULP TASK SETTINGS INSTEAD WHICH GENERATES THIS FILE
angular.module("my.module.config")
.constant("ENV", "dev");
configuration in gulpfile.js
gulpfile.js
var ngConstant = require('gulp-ng-constant-fork');
gulp.task('config', function () {
gulp.src('app/config.json')
.pipe(ngConstant({
name: 'my.module.config',
deps: ['ngAnimate'],
constants: { myPropCnt: 'hola!' },
wrap: 'amd',
}))
// Writes config.js to dist/ folder
.pipe(gulp.dest('dist'));
});
app/config.json
{
"myFirstCnt": true,
"mySecondCnt": { "hello": "world" }
}
dist/config.js (output)
define(["require", "exports"], function(require, exports) {
return angular.module("my.module.config", ["ngAnimate"])
.constant("myFirstCnt", true)
.constant("mySecondCnt", { "hello": "world" })
.constant("myPropCnt", "hola!");
});
configuration in config.json
gulpfile.js
var ngConstant = require('gulp-ng-constant-fork');
gulp.task('config', function () {
gulp.src('app/config.json')
.pipe(ngConstant())
// Writes config.js to dist/ folder
.pipe(gulp.dest('dist'));
});
app/config.json
{
"name": "my.module.config",
"deps": ["ngAnimate"],
"wrap": "commonjs",
"constants": {
"myFirstCnt": true,
"mySecondCnt": { "hello": "world" }
}
}
dist/config.js (output)
module.exports = angular.module("my.module.config", ["ngAnimate"])
.constant("myFirstCnt", true)
.constant("mySecondCnt", { "hello": "world" })
.constant("myPropCnt", "hola!");
Options
options.name
Type: string
Default: undefined
Overrides: json.name
The module name.
This property will override any name
property defined in the input json
file.
options.dest
Type: string
Default: src file name or constant if noFile is true
optional
The path where the generated constant module should be saved. Use to change output filename.
options.constants
Type: Object | string
Default: undefined
Exends/Overrides: json.constants
Constants to defined in the module.
Can be a JSON
string or an Object
.
This property extends the one defined in the input json
file. If there are
properties with the same name, this properties will override the ones from the
input json
file.
options.deps
Type: array<string>|boolean
Default: []
Overrides: json.deps
optional
An array that specifies the default dependencies a module should have. When your
module should not have any modules, so you can append the constants to an
already existing one, you can set deps to false.
This property will override any deps
property defined in the input json
file.
options.noFile
Type: boolean
Default: false
optional
Boolean that tells if the configuration should not be read from a src file. Set this to true if the plugin is not called inside a pipe and the configuration is not loaded from a file.
options.wrap
Type: boolean|string
Default: false
Available: ['amd', 'commonjs']
optional
A boolean to active or deactive the automatic wrapping.
A string who will wrap the result of file, use the
<%= __ngModule %>
variable to indicate where to put the generated
module content.
A string with 'amd' that wraps the module as an AMD module,
compatible with RequireJS
options.space
Type: string
Default: '\t'
optional
A string that defines how the JSON.stringify method will prettify your code.
options.template
Type: string
Default: content of tpls/constant.tpl.ejs
optional
EJS template to apply when creating the output configuration file. The following variables are passed to the template during render:
moduleName
: the module name (string
)deps
: the module dependencies (array<string>
)constants
: the module constants (array<contantObj>
)- where a
constantObj
is an object with aname
and avalue
, bothstrings
.
- where a
options.templatePath
Type: string
Default: 'tpls/constant.tpl.ejs'
optional
Location of a custom template file for creating the output configuration file. Defaults to the provided constants template file if none provided.
options.interpolate
Type: Regexp
Default: undefined
which sets the default lodash interpolation which detects <%= dataProperty %>
optional
Can be used to set the loadash regexp used to detect data property values to inject.