diff --git a/.travis.yml b/.travis.yml
index 5d8289ce74a4de4e026737fd934670bd3708fc22..d339bbbc73a74b266aed21d868bfb2fefc50802c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,6 +15,7 @@ before_script:
   - pear install phing/phing
   - phpenv config-rm xdebug.ini
   - phpenv rehash
+  - npm install -g eslint
 
 script:
-  - phing composer phpunitfast phpcs-console php-cs-fixer-dryrun
+  - phing composer phpunitfast phpcs-console php-cs-fixer-dryrun eslint
diff --git a/build.xml b/build.xml
index baba82f0901dacb0f44fc57bbb2d48855b62613f..e285a861a1ec6f99fcdac5591ad00753d04f18e6 100644
--- a/build.xml
+++ b/build.xml
@@ -65,6 +65,7 @@
     <phingcall target="phpmd"/>
     <phingcall target="pdepend"/>
     <phingcall target="phploc"/>
+    <phingcall target="eslint-report"/>
   </target>
 
   <!-- Report rule violations with PHPMD (mess detector) -->
@@ -103,6 +104,17 @@
     <exec command="${srcdir}/vendor/bin/php-cs-fixer fix ${srcdir}/module --fixers=${php-cs-fixers} --dry-run --verbose --diff" passthru="true" escape="false" checkreturn="true" />
   </target>
 
+  <!-- ESLint -->
+  <target name="eslint">
+    <exec command="eslint -c ${srcdir}/.eslintrc.json ${srcdir}/themes/bootstrap3/js/*.js" escape="false" checkreturn="true" passthru="true" />
+  </target>
+  <target name="eslint-fix">
+    <exec command="eslint --fix -c ${srcdir}/.eslintrc.json ${srcdir}/themes/bootstrap3/js/*.js" escape="false" passthru="true" />
+  </target>
+  <target name="eslint-report">
+    <exec command="eslint -c ${srcdir}/.eslintrc.json ${srcdir}/themes/bootstrap3/js/*.js -f checkstyle -o ${builddir}/reports/eslint.xml" escape="false" />
+  </target>
+
   <!-- PHP API Documentation -->
   <target name="phpdoc">
     <mkdir dir="${builddir}/apidocs"/>