gulp-place
v1.8.7
Published
PHP require like concating syntax for gulp (primary for JavaScript files).
Downloads
12
Maintainers
Readme
gulp-place
PHP require like concating syntax for gulp (primary for JavaScript files).
General Info
Library is tested very vell also in production enviroment, but till now I haven't specific place for focusing only to this library.
Approach
npm install gulp-place
(npm install git+https://github.com/jaandrle/gulp-place.git
)- In 'gulpfile.js':
const gulpPlace= require("gulp-place");
- In gulp task:
const localPlace= gulpPlace({ variable_eval: function, filesCleaner: function })
→ define function for evaluating variables (eval
) and function for cleaning e.g. jshint comments - In '.pipe':
.pipe(localPlace({ folder: string, string_wrapper: string }))
→ define root folder (against gulps cwd) and string quotes (default ") - In files: see Usage examples
TODO
- [ ] Refactoring + test
- [ ] Code documentation + ReadMe + Usage Doc
Usage examples
It simulates function calling:
gulp_place(target: string, type: string): string;
type
:- "files", "glob": Places all files matching
target
pattern (e.g.some_folder/*.*
– all files insome_folder
). - "file": Places file content based on
target
. - "file_if_exists": Places file content based on
target
. Silently skips non-founded file. - "files_once", "glob_once": Ensure loading file once per whole initiation (means 2nd point in Approach).
- "file_once": Ensure loading file once per whole initiation (means 2nd point in Approach).
- "clean": Resets all
*_once
. - "combine" – (
target
in JSON form:{ glob, file, name, type, depends }
):- Creates module/namespace pattern based on
type
("namespace" is default). Also supportstype="module_native"
. - One of
glob/file
must be defined (file
has priority) and correspodns toglob_once/file_once
. name
sets namespace/module name (default is file/folder name).depend
is object of names (in case oftype='module'
).- In inported files can be used simplified import/export syntax:
/export (default )?(function|const|let|var|class) (?<name>…)…/g
: Expression is converted to regular definition without export/default keywords and names are exposed. Except module_native situation (nothing to change)./import (\* as [^ ]+|{[^}]+}) from "depends:([^"]+)"/g
:- In all "module" situation "depends:*" will be conferted based on
depends
key - In module_native nothing else will be changed
- Elsewhere it will be converted into "const …= …;"
- Keep in mind redefinition! → currently the approach is to use import in one script and others used internal names!
- In all "module" situation "depends:*" will be conferted based on
- See example combine-test in "tests" folder.
- Creates module/namespace pattern based on
- "variable": Evaluate
target
withvariable_eval
and return result surrounded bystring_wrapper
. - "eval": Evaluate
target
withvariable_eval
. It can be used for dynamic behaviour in building process. - "eval_out": Evaluate
target
withvariable_eval
and return result withoutstring_wrapper
.
- "files", "glob": Places all files matching
target
:- see
type
- In case of file(s) can be used also variable pattern
some_folder/${file_var}
|${folder_var}/some_file
(${}
is evaluated byvariable_eval
).
- see