diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8e321112858739b596ad7777b7440ebdca27a48a..9d723387222d8010595037ab33a3e8d802b8271b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,7 @@
 workflow:
   rules:
     - if: $CI_COMMIT_BRANCH
-      changes: 
+      changes:
         - README.md
         - .gitlab-ci.yml
       when: never
@@ -14,6 +14,7 @@ workflow:
     - if: $CI_COMMIT_TAG =~ /^[0-9]+[.][0-9]+([.][0-9]+)?([-a-z])*$/
 
 stages:          # List of stages for jobs, and their order of execution
+  - build
   - package
   - upload
   - release
@@ -30,22 +31,33 @@ variables:
   GIT_SUBMODULE_STRATEGY: recursive
   GIT_SUBMODULE_FORCE_HTTPS: "true"
 
-package: 
+build:
+  stage: build
+  image: node:latest
+  script:
+    - npm install && npm run build
+    - find . -name node_modules -type d | xargs rm -rf
+  artifacts:
+    paths:
+      - assets
+
+package:
   image: javieraviles/zip:latest
   stage: package
   script:
-    - 'zip -r $ZIP * -x "*CODE_OF_CONDUCT.md" -x "*node_modules*" -x "*bin/*" -x "*tests/*" -x "*.gitignore" -x "*.gitlab-ci.yml" -x "*.gitmodules" -x "*phpunit.xml.dist" -x "*Gruntfile.js" -x "*package.json" -x "*package-lock.json" -x "*.travis.yml" -x "*.editorconfig" -x "*.distignore" -x "*src/*"'
+    - 'zip -r $ZIP * -x "*CODE_OF_CONDUCT.md" -x "*node_modules*" -x "*bin/*" -x "*tests/*" -x "*.gitignore" -x "*.gitlab-ci.yml" -x "*.gitmodules" -x "*.php-cs-fixer.cache" -x "*phpunit.xml.dist" -x "*Gruntfile.js" -x "*package.json" -x "*package-lock.json" -x "*.travis.yml" -x "*.editorconfig" -x "*.distignore" -x "*src/*" -x "*.husky*" -x ".lintstagedrc.js" -x ".pretierrc" -x ".prettierrc-php" -x ".prettierignore" -x "eslint.config.js" -x "*.nvimrc*"'
     - 'ls -lah'
   artifacts:
     paths:
       - $ZIP
+
 upload:
   stage: upload
   image: curlimages/curl:latest
   script:
     - |
       curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${ZIP} ${PACKAGE_REGISTRY_URL}/${ZIP}
-      
+
 release:
   # Caution, as of 2021-02-02 these assets links require a login, see:
   # https://gitlab.com/gitlab-org/gitlab/-/issues/299384