diff options
author | WalcoFPV <walcofpv@gmail.com> | 2020-10-26 22:17:30 +0300 |
---|---|---|
committer | WalcoFPV <walcofpv@gmail.com> | 2020-10-26 22:17:30 +0300 |
commit | f0c48bfe377b92793ab9c1010420d66addd15066 (patch) | |
tree | cff27807c41bf75f01aca473616fb95feeb9c088 /gulpfile.js | |
parent | ebbce62bac7d36856b29ef82671ac21bfe656fff (diff) |
Fix require modules with Cordova
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gulpfile.js b/gulpfile.js index d0f40c49..7e7e6322 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -33,6 +33,8 @@ const source = require('vinyl-source-stream'); const stream = require('stream'); const cordova = require("cordova-lib").cordova; +const browserify = require('browserify'); +const glob = require('glob'); const DIST_DIR = './dist/'; const APPS_DIR = './apps/'; @@ -833,6 +835,7 @@ function cordova_dist() { distTasks.push(cordova_rename_src_package); distTasks.push(cordova_packagejson); distTasks.push(cordova_configxml); + distTasks.push(cordova_browserify); distTasks.push(cordova_depedencies); if (cordovaDependencies) { distTasks.push(cordova_platforms); @@ -920,6 +923,45 @@ function cordova_configxml() { ])) .pipe(gulp.dest(CORDOVA_DIST_DIR)); } +function cordova_browserify(callback) { + const readFile = function(file) { + return new Promise(function(resolve) { + if (!file.includes("node_modules")) { + fs.readFile(file, 'utf8', async function (err,data) { + if (data.match('require\\(.*\\)')) { + const execbrowserify = await cordova_execbrowserify(file); + } + resolve(); + }); + } else { + resolve(); + } + }); + } + glob(`${CORDOVA_DIST_DIR}www/**/*.js`, {}, function (err, files) { + const readLoop = function(files) { + if (files.length === 0) { + callback(); + } else { + const file = files.pop(); + readFile(file).then(function() { + readLoop(files); + }); + } + }; + readLoop(files); + }); +} +function cordova_execbrowserify(file) { + const filename = file.split('/').pop(); + const destpath = file.replace(filename, ''); + console.log(`Include required modules in ${file}`); + return browserify(file, { ignoreMissing: true }) + .bundle() + .pipe(source(filename)) + .pipe(gulp.dest(destpath)); +} +gulp.task('test', cordova_browserify); function cordova_depedencies() { process.chdir('dist_cordova'); return gulp.src(['./package.json', './yarn.lock']) |