{"id":3927,"date":"2017-02-14T18:00:47","date_gmt":"2017-02-14T14:00:47","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=3927"},"modified":"2026-04-03T15:34:00","modified_gmt":"2026-04-03T12:34:00","slug":"build-custom-dhtmlxsuite-package-gulp","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/build-custom-dhtmlxsuite-package-gulp\/","title":{"rendered":"How to Build Custom dhtmlxSuite Package With Gulp.js"},"content":{"rendered":"<p>\n        <div class=\"info-block\">\n            <div class=\"info-icon\">\n                <svg viewBox=\"0 0 14 16\">\n                    <path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"><\/path>\n                <\/svg>\n\n                INFO\n            <\/div>\n\n            <div class=\"info-content\">\n                <p>\n                    If you are using an outdated version of DHTMLX Suite 5 and require the documentation for it, \n                    please <a href=\"https:\/\/dhtmlx.com\/docs\/contact.shtml\" title=\"\">contact us<\/a>, <br \/>and we will send it to you.\n                <\/p>\n            <\/div>\n        <\/div>\n    <br \/>\nIn this article, we&#8217;ll learn how you can build a custom DHTMLX package using <a href=\"https:\/\/gulpjs.com\/\">gulp.js<\/a>.<\/p>\n<p><a href=\"\/\/dhtmlx.com\/docs\/products\/dhtmlxSuite\/download.shtml\"><strong>Download dhtmlxSuite, JavaScript UI library for creating web applications<\/strong><\/a><\/p>\n<p>After you download and unpack the DHTMLX Suite package, you&#8217;ll find a bunch of folders inside. We&#8217;re interested in two of them:<\/p>\n<ul>\n<li><strong>sources<\/strong> that contains the source files of the library<\/li>\n<li><strong>codebase<\/strong> that contains compiled files<\/li>\n<\/ul>\n<p>If you look inside the <em>sources<\/em> folder, you&#8217;ll see that in contains sub-folders each of which corresponds to a particular DHTMLX component, e.g. <em>dhtmlxAccordion<\/em>, <em>dhtmlxCalendar<\/em>, etc. It&#8217;s up to you which of them will be included in your custom package.<\/p>\n<p>Gulp.js is a build system that can be used for copying files from one location to another, compiling, deploying, creating notifications, unit testing, linting, etc. It&#8217;s built on Node.js and Node Package Manager (npm) that you can use to install it.<\/p>\n<p>To build a package from DHTMLX Suite sources you can use a script that you can find on <a href=\"https:\/\/github.com\/DHTMLX\/gulp-package\">this GitHub page<\/a>. You should download <a href=\"https:\/\/github.com\/DHTMLX\/gulp-package\/archive\/master.zip\">the package<\/a> and unzip the content of it to the <strong>sources<\/strong> folder. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2017\/02\/gulp_in_sources.jpg\" alt=\"gulp_in_sources\" width=\"726\" height=\"452\" class=\"aligncenter size-full wp-image-3929\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2017\/02\/gulp_in_sources.jpg 726w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2017\/02\/gulp_in_sources-300x187.jpg 300w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/p>\n<p>Now, to build the package just run from command line (from sources folder).<\/p>\n<div class=\"codecolorer-container text default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"text codecolorer\">npm install<br \/>\nnpm run build<\/div><\/div>\n<p>The script will rebuild files in <em>codebase<\/em> folder from sources. That&#8217;s it!<\/p>\n<p>Among unzipped files, you&#8217;ll find the <em>gulpfile.js<\/em> file that allows you to decide what components you want to include into your custom package. If you open it, you&#8217;ll find the components object that looks like this:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">var<\/span> components <span class=\"sy0\">=<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"st0\">&quot;calendar&quot;<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"st0\">&quot;combo&quot;<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"st0\">&quot;colorpicker&quot;<\/span><span class=\"sy0\">:<\/span> &nbsp;<span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"coMULTI\">\/* more components *\/<\/span><\/div><\/div>\n<p>It corresponds to the content of the sources folder. You can edit it to define the set of components that will be included into the package. <\/p>\n<p>As you can see, building a custom package on the basis of DHTMLX Suite is not a hard task. If you have gulp installed, all you need to do is to change the <em>gulpfile.js<\/em> file and run two simple commands. We hope that you find this little recipe helpful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we&#8217;ll learn how you can build a custom DHTMLX package using gulp.js. Download dhtmlxSuite, JavaScript UI library for creating web applications After you download and unpack &#8230;<\/p>\n","protected":false},"author":2,"featured_media":3936,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,71,1,38],"tags":[33,14,10],"class_list":["post-3927","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-posts-for-codeproject-com","category-tutorials","category-uncategorized","category-visible","tag-all-posts","tag-tips","tag-dhtmlxsuite"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/3927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=3927"}],"version-history":[{"count":2,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/3927\/revisions"}],"predecessor-version":[{"id":15356,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/3927\/revisions\/15356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/3936"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=3927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=3927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=3927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}