Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andidev/gulp-ng-constant-fork
Gulp plugin for dynamic generation of angular constant modules.
https://github.com/andidev/gulp-ng-constant-fork
Last synced: 13 days ago
JSON representation
Gulp plugin for dynamic generation of angular constant modules.
- Host: GitHub
- URL: https://github.com/andidev/gulp-ng-constant-fork
- Owner: andidev
- License: mit
- Fork: true (guzart/gulp-ng-constant)
- Created: 2015-01-24T22:44:38.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-05-27T22:27:25.000Z (over 8 years ago)
- Last Synced: 2024-09-15T22:37:09.060Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 144 KB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
gulp-ng-constant-fork
================[![Build Status](https://travis-ci.org/andidev/gulp-ng-constant-fork.svg)](https://travis-ci.org/andidev/gulp-ng-constant-fork.svg)
## Information
Packagegulp-ng-constant-fork
Description
Plugin for dynamic generation of angular constant modules. Forked version of guzart/gulp-ng-constant with extra options.
Based of grunt-ng-constant.Node Version
>= 0.10## Usage
This plugin is a fork of [guzarts plugin gulp-ng-constant](https://github.com/guzart/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](https://github.com/guzart/gulp-ng-constant/issues/11) and the problem that the [plugin cannot be called without referencing a config.json file](https://github.com/guzart/gulp-ng-constant/pull/9). 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|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](https://github.com/andidev/gulp-ng-constant-fork/blob/master/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`)
* `constants`: the module constants (`array`)
* where a `constantObj` is an object with a `name` and a `value`, both `strings`.#### 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](https://lodash.com/docs#templateSettings-interpolate) used to detect data property values to inject.