Created
February 19, 2018 23:23
-
-
Save johnkingzy/0edf9873c742685eb7504499bf7e7567 to your computer and use it in GitHub Desktop.
Final output for Gulp file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var gulp = require("gulp"); | |
var rename = require("gulp-rename"); | |
var clean = require("gulp-clean"); | |
var fs = require("fs"); | |
var cheerio = require("cheerio"); | |
var ts = require("typescript"); | |
gulp.task("dist", function() { | |
var files = [ | |
"./../server/public/*", | |
"!./../server/public/.htaccess", | |
"!./../server/public/index.php", | |
"!./../server/public/storage", | |
"!./../server/public/favicon.ico", | |
"!./../server/public/favicon-32x32.png" | |
]; | |
//remove old dist files from laravel public folder | |
gulp.src(files, { read: false }).pipe(clean({ force: true })); | |
//copy dist folder into laravel public folder | |
gulp | |
.src(["./dist/**/*", "!./dist/index.html", "!./dist/stats.json"]) | |
.pipe(gulp.dest("./../server/public")); | |
var $ = cheerio.load(fs.readFileSync("./dist/index.html", "utf8")); | |
//get script tags that need to be injected into main laravel view | |
var scripts = $("script") | |
.map(function(i, el) { | |
return $("<div>").append($(el)).html(); | |
}) | |
.toArray(); | |
//get css tags that need to be injected into main laravel view | |
var styles = $("link") | |
.filter(function(i, el) { | |
return $(el).attr("href").indexOf("bundle.css") > -1; | |
}) | |
.map(function(i, el) { | |
return $("<div>").append($(el)).html(); | |
}) | |
.toArray(); | |
//js scripts replace regex | |
var jsSearch = /{{--angular scripts begin--}}[\s\S]*{{--angular scripts end--}}/; | |
var jsReplaceStr = | |
"{{--angular scripts begin--}}" + | |
"\n\t\t" + | |
scripts.join("\n\t\t") + | |
"\n\t\t{{--angular scripts end--}}"; | |
//css styles replace regex | |
var cssSearch = /{{--angular styles begin--}}[\s\S]*{{--angular styles end--}}/; | |
var cssReplaceStr = | |
"{{--angular styles begin--}}" + | |
"\n\t\t" + | |
styles.join("\n\t\t") + | |
"\n\t\t{{--angular styles end--}}"; | |
//replace app stylesheet links and js script tags with new ones | |
var content = fs.readFileSync( | |
"./../server/resources/views/welcome.blade.php", | |
"utf8" | |
); | |
content = content | |
.replace(jsSearch, jsReplaceStr) | |
.replace(cssSearch, cssReplaceStr); | |
fs.writeFileSync( | |
"./../server/resources/views/welcome.blade.php", | |
content, | |
"utf8" | |
); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment