{"id":436,"date":"2015-08-14T13:14:25","date_gmt":"2015-08-14T11:14:25","guid":{"rendered":"http:\/\/blog.thecodecampus.de\/?p=436"},"modified":"2023-12-20T20:28:32","modified_gmt":"2023-12-20T19:28:32","slug":"speed-up-your-less-build-with-gulp","status":"publish","type":"post","link":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/","title":{"rendered":"Speed up your Less build with Gulp"},"content":{"rendered":"<p><b>Problem<\/b><\/p>\n<p>Earlier this year, we started to port a customer website from a old css-style to a more modern bootstrap-style.<br \/>\nTo be more flexible, we switched from plain css to less (as a css-precompiler) and automated the build with grunt.<\/p>\n<p>The build was very basic and just compiled the less files into css files, we didn&#8217;t use sourcemaps or minification and still the complete build takes <strong>~11s<\/strong> and the watch task about <strong>4s<\/strong>. This is a long time, if you only want to change some styles.<br \/>\nAnother problem in development is, without sourcemaps for your css\/less-files you always need to search for the correct less file and we got a lot of them.<\/p>\n<p><b>Idea<\/b><\/p>\n<ul>\n<li>Switch the build system to gulp, because we only need to compile less<\/li>\n<li>Add sourcemaps for less at development time, so you can see the correct less file in your browsers dev-tools<\/li>\n<li>Speed up the build, by using caching in gulp<\/li>\n<\/ul>\n<p><b>Gulp and less<\/b><\/p>\n<p>We used following npm-plugins for the basic build:<\/p>\n<ul>\n<li><code>gulp<\/code><\/li>\n<li><code>gulp-utils<\/code><\/li>\n<li><code>gulp-less<\/code><\/li>\n<li><code>gulp-sourcemaps<\/code><\/li>\n<li><code>del<\/code><\/li>\n<\/ul>\n<p><strong><em>Hint:<\/em><\/strong> install them via <code>npm install -save-dev {plugin-name}<\/code><\/p>\n<p>The basic build (gulpfile.js) looks like this:<\/p>\n<pre class=\"lang:js decode:true \">\/\/ load dependencies\r\nvar gulp = require('gulp');\r\nvar util = require('gulp-util');\r\nvar sourceMaps = require('gulp-sourcemaps');\r\nvar less = require('gulp-less');\r\nvar del = require('del');\r\n\r\n\/\/ define paths-variables\r\nvar paths = {\r\n    cssBootstrap: 'css_generated\/',\r\n    lessFiles: ['less\/main_bootstrap.less', 'less\/main_legacy.less']\r\n};\r\n\r\n\/\/define tasks\r\ngulp.task('default', ['clean', 'less', 'watch'], function () {\r\n    return util.log('Gulp is running!');\r\n});\r\n\r\ngulp.task('watch', function () {\r\n\/\/ watch all less files for a change and than call the clean and less task\r\n    gulp.watch('less\/**\/*.less', ['clean', 'less']);\r\n});\r\n\r\ngulp.task('less', function () {\r\n    util.log('Compile less ...');\r\n    return compileLess();\r\n});\r\n\r\ngulp.task('clean', function (cb) {\r\n    util.log('Delete old less ...');\r\n    del([paths.cssBootstrap + '**\/*'], cb);\r\n});\r\n\r\n\/\/ define task-function\r\nfunction compileLess() {\r\n    var s = gulp.src(paths.lessFiles);\r\n    s = s.pipe(sourceMaps.init());\r\n    s = s.pipe(less());\r\n    s = s.pipe(sourceMaps.write('maps\/'));\r\n    return s.pipe(gulp.dest(paths.cssBootstrap));\r\n}\r\n<\/pre>\n<p>The magic happens in the <code>compileLess()<\/code>-Method, we initialize the sourcemap, compile the less to css and save the sourcemap and the css files.<br \/>\nAfter running <code>gulp<\/code> it takes about <strong>~11s<\/strong> on my machine, without the sourcemaps <strong>~4s<\/strong>.<br \/>\nThe watch tasks takes about <strong>~10s<\/strong>, that&#8217;s more than 2 times slower than grunt, but we got sourcemaps now.<\/p>\n<p><b>Speed Up<\/b><\/p>\n<p>Fortunately gulp is stream based and some genius people helped us to save a lot of time with their caching plugins.<br \/>\nSo we added the following plugins to the build:<\/p>\n<ul>\n<li><code>gulp-cached<\/code><\/li>\n<li><code>gulp-remember<\/code><\/li>\n<\/ul>\n<p>Just install them via npm and import them into your gulpfile.js<\/p>\n<pre class=\"lang:js decode:true \">var cache = require('gulp-cached');\r\nvar remember = require('gulp-remember');\r\n<\/pre>\n<p>Edit the <code>compileLess()<\/code>-Method as follows:<\/p>\n<pre class=\"lang:js decode:true \">function compileLess() {\r\n    var s = gulp.src(paths.lessFiles);\r\n    s = s.pipe(sourceMaps.init());\r\n    s = s.pipe(cache('less'));\r\n    s = s.pipe(less());\r\n    s = s.pipe(remember('less'));\r\n    s = s.pipe(sourceMaps.write('maps\/'));\r\n    return s.pipe(gulp.dest(paths.cssBootstrap));\r\n}\r\n<\/pre>\n<p>The <code>cache('less')<\/code> filters all files out of the stream, which have not changed since the last call. &#8216;less&#8217; is the given name for the cache. The <code>remember('less')<\/code> adds all previously cached files back to the stream.<\/p>\n<p>The first <code>gulp<\/code>-call still takes about the same time (~11s), but when we change a random less file, it takes less than <strong>3s<\/strong> to compile the css.<\/p>\n<p><strong><em>Hint:<\/em><\/strong><\/p>\n<ul>\n<li>If you don&#8217;t want to run into invalid caching values at branche changes in your SCM (git, svn, &#8230;), then use this <a href=\"https:\/\/github.com\/jgable\/gulp-cache#clearing-the-cache\" target=\"_blank\" rel=\"noopener\">clear-Task<\/a> from the gulp-cache-Authors<\/li>\n<\/ul>\n<p><strong><em>Attention:<\/em><\/strong><\/p>\n<ul>\n<li>If you use a clean task, to delete all files in the output folder and you miss the <code>remember('less')<\/code> task, then only the changed files are compiled and written to the output folder<\/li>\n<li>If you use the <code>@import<\/code>-statement in less and there are changes in the imported file, the cache prohibits a new build of the parent-file in the watch task (because there are no changes in the parent-file)<\/li>\n<\/ul>\n<p><b>Conclusion<\/b><\/p>\n<p>We now have a clean less build with sourcemaps for development purposes. It works as fast as grunt with the plus of sourcemaps, so we save time at development. The build is easy to understand and maintainable, but maybe because it&#8217;s only for one purpose.<\/p>\n<p>The biggest issue we see, is the caching problem with less <code>@import<\/code> statements, a solution could be:<br \/>\nBuild all less files within the gulp task, then concat them to one css file and add the sourcemaps.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Earlier this year, we started to port a customer website from a old css-style to a more modern bootstrap-style. To be more flexible, we switched from plain css to less (as a css-precompiler) and automated the build with grunt. The build was very basic and just compiled the less files into css files, we [&#8230;]<br \/><a class=\"meta-big\" href=\"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/\"> READ MORE<\/a><\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[58,59,83],"class_list":["post-436","post","type-post","status-publish","format-standard","hentry","category-javascript","tag-gulp","tag-less","tag-tooling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Speed up your Less build with Gulp - Web Development Blog<\/title>\n<meta name=\"description\" content=\"Supercharge your LESS build with Gulp! Accelerate development, optimize stylesheets, and boost performance effortlessly. Level up your workflow now!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Speed up your Less build with Gulp - Web Development Blog\" \/>\n<meta property=\"og:description\" content=\"Supercharge your LESS build with Gulp! Accelerate development, optimize stylesheets, and boost performance effortlessly. Level up your workflow now!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development tips and tricks - theCodeCampus Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-14T11:14:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-20T19:28:32+00:00\" \/>\n<meta name=\"author\" content=\"theCodeCampus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"theCodeCampus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/\"},\"author\":{\"name\":\"theCodeCampus\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/276bbda2f8da73154f22fb652201cfbc\"},\"headline\":\"Speed up your Less build with Gulp\",\"datePublished\":\"2015-08-14T11:14:25+00:00\",\"dateModified\":\"2023-12-20T19:28:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/\"},\"wordCount\":530,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"keywords\":[\"Gulp\",\"Less\",\"Tooling\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/\",\"name\":\"Speed up your Less build with Gulp - Web Development Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\"},\"datePublished\":\"2015-08-14T11:14:25+00:00\",\"dateModified\":\"2023-12-20T19:28:32+00:00\",\"description\":\"Supercharge your LESS build with Gulp! Accelerate development, optimize stylesheets, and boost performance effortlessly. Level up your workflow now!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/speed-up-your-less-build-with-gulp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Speed up your Less build with Gulp\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"name\":\"Web Development tips and tricks - theCodeCampus Blog\",\"description\":\"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\",\"name\":\"theCodeCampus\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"width\":156,\"height\":156,\"caption\":\"theCodeCampus\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/276bbda2f8da73154f22fb652201cfbc\",\"name\":\"theCodeCampus\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch-96x96.jpg\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch-96x96.jpg\",\"caption\":\"theCodeCampus\"},\"description\":\"Our knowledge is not simply gained through reading - it is trained, tested and constantly being expanded. Because first and foremost, we are all developers at W11K. The know-how that we acquire here as developers, consultants and information architects flows immediately into our training courses and articles for theCodeCampus.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/showcase\\\/thecodecampus\\\/\"],\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Speed up your Less build with Gulp - Web Development Blog","description":"Supercharge your LESS build with Gulp! Accelerate development, optimize stylesheets, and boost performance effortlessly. Level up your workflow now!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/","og_locale":"en_US","og_type":"article","og_title":"Speed up your Less build with Gulp - Web Development Blog","og_description":"Supercharge your LESS build with Gulp! Accelerate development, optimize stylesheets, and boost performance effortlessly. Level up your workflow now!","og_url":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/","og_site_name":"Web Development tips and tricks - theCodeCampus Blog","article_published_time":"2015-08-14T11:14:25+00:00","article_modified_time":"2023-12-20T19:28:32+00:00","author":"theCodeCampus","twitter_card":"summary_large_image","twitter_misc":{"Written by":"theCodeCampus","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/#article","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/"},"author":{"name":"theCodeCampus","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/276bbda2f8da73154f22fb652201cfbc"},"headline":"Speed up your Less build with Gulp","datePublished":"2015-08-14T11:14:25+00:00","dateModified":"2023-12-20T19:28:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/"},"wordCount":530,"commentCount":2,"publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"keywords":["Gulp","Less","Tooling"],"articleSection":["JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/","url":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/","name":"Speed up your Less build with Gulp - Web Development Blog","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#website"},"datePublished":"2015-08-14T11:14:25+00:00","dateModified":"2023-12-20T19:28:32+00:00","description":"Supercharge your LESS build with Gulp! Accelerate development, optimize stylesheets, and boost performance effortlessly. Level up your workflow now!","breadcrumb":{"@id":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodecampus.de\/blog\/speed-up-your-less-build-with-gulp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodecampus.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Speed up your Less build with Gulp"}]},{"@type":"WebSite","@id":"https:\/\/www.thecodecampus.de\/blog\/#website","url":"https:\/\/www.thecodecampus.de\/blog\/","name":"Web Development tips and tricks - theCodeCampus Blog","description":"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.","publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.thecodecampus.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.thecodecampus.de\/blog\/#organization","name":"theCodeCampus","url":"https:\/\/www.thecodecampus.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","width":156,"height":156,"caption":"theCodeCampus"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/276bbda2f8da73154f22fb652201cfbc","name":"theCodeCampus","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch-96x96.jpg","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch-96x96.jpg","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch-96x96.jpg","caption":"theCodeCampus"},"description":"Our knowledge is not simply gained through reading - it is trained, tested and constantly being expanded. Because first and foremost, we are all developers at W11K. The know-how that we acquire here as developers, consultants and information architects flows immediately into our training courses and articles for theCodeCampus.","sameAs":["https:\/\/www.linkedin.com\/showcase\/thecodecampus\/"],"url":"https:\/\/www.thecodecampus.de\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/comments?post=436"}],"version-history":[{"count":33,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/436\/revisions"}],"predecessor-version":[{"id":2733,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/436\/revisions\/2733"}],"wp:attachment":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media?parent=436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/categories?post=436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/tags?post=436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}