1.8.7 • Published 3 years ago
gulp-place v1.8.7
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
targetpattern (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" – (
targetin JSON form:{ glob, file, name, type, depends }):- Creates module/namespace pattern based on
type("namespace" is default). Also supportstype="module_native". - One of
glob/filemust be defined (filehas priority) and correspodns toglob_once/file_once. namesets namespace/module name (default is file/folder name).dependis 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
dependskey - 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
targetwithvariable_evaland return result surrounded bystring_wrapper. - "eval": Evaluate
targetwithvariable_eval. It can be used for dynamic behaviour in building process. - "eval_out": Evaluate
targetwithvariable_evaland 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