From f159027025ab8245aaf4adebe61d40510c7264bc Mon Sep 17 00:00:00 2001 From: Petr Gazarov Date: Sun, 6 Nov 2016 21:45:09 -0500 Subject: [PATCH] Remove bower and port dependencies over to npm --- .bowerrc | 3 -- CONTRIBUTING.md | 6 --- bower.json | 33 -------------- client/less/lib/bootstrap/variables.less | 2 +- gulpfile.js | 45 ++++++++++---------- package.json | 16 +++++-- public/css/themes/flatly.less | 4 +- server/middlewares/add-return-to.js | 1 - server/views/account/show.jade | 1 - server/views/certificate/back-end.jade | 2 +- server/views/certificate/data-vis.jade | 2 +- server/views/certificate/front-end.jade | 2 +- server/views/certificate/full-stack.jade | 2 +- server/views/partials/react-stylesheets.jade | 8 ++-- server/views/partials/stylesheets.jade | 6 +-- 15 files changed, 49 insertions(+), 84 deletions(-) delete mode 100644 .bowerrc delete mode 100644 bower.json diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index 5914c6f0de..0000000000 --- a/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory" : "public/bower_components" -} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f2b1c478d7..9762bb864b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -172,12 +172,6 @@ npm install # Install Gulp globally npm install -g gulp - -# Install Bower globally -npm install -g bower - -# Install Bower dependencies -bower install ``` Then you need to add the private environment variables (API Keys): diff --git a/bower.json b/bower.json deleted file mode 100644 index cd5f8fb509..0000000000 --- a/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "freecodecamp", - "version": "0.0.0", - "homepage": "http://freecodecamp.com", - "private": true, - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "public/bower_components", - "test", - "tests" - ], - "dependencies": { - "d3": "~3.5.5", - "jquery": "~3.1.1", - "cal-heatmap": "~3.5.2", - "bootstrap": "~3.3.4", - "font-awesome": "~4.5.0", - "moment": "~2.10.2", - "moment-timezone": "~0.5.0", - "jshint": "~2.9.0", - "lightbox2": "~2.8.1", - "rxjs": "~4.0.6", - "CodeMirror": "~5.15.2", - "chai": "~3.4.1", - "clipboard": "~1.5.5", - "mousetrap": "~1.5.3" - }, - "resolutions": { - "jquery": "~3.1.1" - } -} diff --git a/client/less/lib/bootstrap/variables.less b/client/less/lib/bootstrap/variables.less index cddcc5a1de..84f63a8a72 100755 --- a/client/less/lib/bootstrap/variables.less +++ b/client/less/lib/bootstrap/variables.less @@ -76,7 +76,7 @@ //== Iconography // -//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. +//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via npm. //** Load fonts from this directory. @icon-font-path: "../fonts/"; diff --git a/gulpfile.js b/gulpfile.js index 21fbdf0917..1b1f5ecca0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -88,34 +88,33 @@ var paths = { }, vendorChallenges: [ - 'public/bower_components/jshint/dist/jshint.js', - 'public/bower_components/chai/chai.js', - 'public/bower_components/CodeMirror/lib/codemirror.js', - 'public/bower_components/CodeMirror/addon/comment/comment.js', - 'public/bower_components/CodeMirror/addon/edit/closebrackets.js', - 'public/bower_components/CodeMirror/addon/edit/matchbrackets.js', - 'public/bower_components/CodeMirror/addon/lint/lint.js', - 'public/bower_components/CodeMirror/addon/lint/javascript-lint.js', - 'public/bower_components/CodeMirror/mode/javascript/javascript.js', - 'public/bower_components/CodeMirror/mode/xml/xml.js', - 'public/bower_components/CodeMirror/mode/css/css.js', - 'public/bower_components/CodeMirror/mode/htmlmixed/htmlmixed.js', - 'node_modules/emmet-codemirror/dist/emmet.js', + require.resolve('jshint').replace('src', 'dist'), + require.resolve('chai').replace('index.js', 'chai.js'), + require.resolve('codemirror'), + require.resolve('codemirror').replace('lib/codemirror.js', 'addon/comment/comment.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'addon/edit/closebrackets.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'addon/edit/matchbrackets.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'addon/lint/lint.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'addon/lint/javascript-lint.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'mode/javascript/javascript.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'mode/xml/xml.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'mode/css/css.js'), + require.resolve('codemirror').replace('lib/codemirror.js', 'mode/htmlmixed/htmlmixed.js'), + require.resolve('emmet-codemirror'), 'public/js/lib/loop-protect/loop-protect.js' ], vendorMain: [ - 'public/bower_components/jquery/dist/jquery.min.js', - 'public/bower_components/bootstrap/dist/js/bootstrap.min.js', - 'public/bower_components/d3/d3.min.js', - 'public/bower_components/moment/min/moment.min.js', + require.resolve('jquery').replace('.js', '.min.js'), + require.resolve('bootstrap').replace('npm.js', 'bootstrap.min.js'), + require.resolve('d3').replace('.js', '.min.js'), + require.resolve('cal-heatmap'), + require.resolve('moment').replace('.js', '.min.js'), + require.resolve('moment-timezone').replace('index.js', 'builds/moment-timezone-with-data.min.js'), - 'public/bower_components/' + - 'moment-timezone/builds/moment-timezone-with-data.min.js', - - 'public/bower_components/mousetrap/mousetrap.min.js', - 'public/bower_components/lightbox2/dist/js/lightbox.min.js', - 'public/bower_components/rxjs/dist/rx.all.min.js' + require.resolve('mousetrap').replace('.js', '.min.js'), + require.resolve('lightbox2').replace('.js', '.min.js'), + require.resolve('rx').replace('index.js', 'dist/rx.all.min.js') ], js: [ diff --git a/package.json b/package.json index bb72097a7d..31d78bbf2f 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "create-rev": "node -e \"var fs = require('fs'); fs.access('./server/rev-manifest.json', function(err) { if (err) { console.log('\\n\\ncreating manifest\\n\\n'); return fs.writeFileSync('server/rev-manifest.json', '{}'); } console.log('\\n\\nrev-manifest present\\n\\n'); });\"", "build": "NODE_ENV=production gulp build -p", "start": "babel-node server/server.js", - "prestart-production": "bower cache clean && bower install && gulp build -p", + "prestart-production": "gulp build -p", "start-production": "node pm2Start", "lint": "npm run lint-js && npm run lint-json", "lint-challenges": "jsonlint-cli seed/challenges/**/*.json", @@ -37,11 +37,17 @@ "babel-preset-react": "^6.3.13", "babel-register": "^6.3.0", "body-parser": "^1.13.2", + "bootstrap": "~3.3.7", + "cal-heatmap": "~3.5.2", + "chai": "~3.4.1", "classnames": "^2.1.2", + "clipboard": "~1.5.15", + "codemirror": "~5.15.2", "compression": "^1.6.0", "connect-mongo": "^1.3.2", "cookie-parser": "^1.4.0", "csurf": "^1.8.3", + "d3": "~3.5.17", "debug": "^2.2.0", "dedent": "~0.6.0", "dotenv": "^4.0.0", @@ -54,6 +60,7 @@ "express-state": "^1.2.0", "express-validator": "^3.0.0", "fetchr": "~0.5.12", + "font-awesome": "~4.5.0", "frameguard": "^3.0.0", "gitter-sidecar": "^1.2.3", "googleapis": "16.1.0", @@ -62,7 +69,10 @@ "history": "^3.2.1", "invariant": "^2.2.1", "jade": "^1.11.0", + "jquery": "~3.1.1", + "jshint": "~2.9.4", "jsonlint-cli": "^1.0.1", + "lightbox2": "~2.8.2", "lodash": "^4.1.0", "loopback": "^2.22.0", "loopback-boot": "^2.13.0", @@ -73,7 +83,7 @@ "moment-timezone": "^0.5.0", "mongodb": "^2.0.33", "morgan": "^1.6.1", - "mousetrap": "^1.6.0", + "mousetrap": "~1.6.0", "node-emoji": "^1.4.1", "nodemailer": "^2.1.0", "nodemailer-ses-transport": "^1.3.0", @@ -113,7 +123,7 @@ "redux-form": "^5.2.3", "request": "^2.65.0", "reselect": "^2.0.2", - "rx": "^4.0.0", + "rx": "~4.0.8", "sanitize-html": "^1.11.1", "snyk": "^1.19.1", "store": "https://github.com/berkeleytrue/store.js.git#feature/noop-server", diff --git a/public/css/themes/flatly.less b/public/css/themes/flatly.less index 92dcb8069b..fc5d8aa4ea 100644 --- a/public/css/themes/flatly.less +++ b/public/css/themes/flatly.less @@ -72,7 +72,7 @@ //== Iconography // -//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. +//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via npm. //** Load fonts from this directory. @icon-font-path: "../fonts/"; @@ -1164,4 +1164,4 @@ a.list-group-item { .popover { color: @text-color; -} \ No newline at end of file +} diff --git a/server/middlewares/add-return-to.js b/server/middlewares/add-return-to.js index 0d25940e6b..1a74d03d59 100644 --- a/server/middlewares/add-return-to.js +++ b/server/middlewares/add-return-to.js @@ -1,6 +1,5 @@ const pathsOfNoReturn = [ 'link', - 'bower_components', 'auth', 'login', 'logout', diff --git a/server/views/account/show.jade b/server/views/account/show.jade index 026e52a511..38e12a9495 100644 --- a/server/views/account/show.jade +++ b/server/views/account/show.jade @@ -1,7 +1,6 @@ extends ../layout block content include ../partials/flyer - script(src="/bower_components/cal-heatmap/cal-heatmap.min.js") script. var challengeName = 'Profile View'; if (user && user.username === username) diff --git a/server/views/certificate/back-end.jade b/server/views/certificate/back-end.jade index 1f7b4bc79c..3937991545 100644 --- a/server/views/certificate/back-end.jade +++ b/server/views/certificate/back-end.jade @@ -1,5 +1,5 @@ meta(name='viewport', content='width=device-width, initial-scale=1') -link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css') include styles .certificate-wrapper.container diff --git a/server/views/certificate/data-vis.jade b/server/views/certificate/data-vis.jade index 9d4cbe061c..b5933775bc 100644 --- a/server/views/certificate/data-vis.jade +++ b/server/views/certificate/data-vis.jade @@ -1,5 +1,5 @@ meta(name='viewport', content='width=device-width, initial-scale=1') -link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css') include styles .certificate-wrapper.container diff --git a/server/views/certificate/front-end.jade b/server/views/certificate/front-end.jade index 8cdbcab877..337004d893 100644 --- a/server/views/certificate/front-end.jade +++ b/server/views/certificate/front-end.jade @@ -1,5 +1,5 @@ meta(name='viewport', content='width=device-width, initial-scale=1') -link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css') include styles .certificate-wrapper.container diff --git a/server/views/certificate/full-stack.jade b/server/views/certificate/full-stack.jade index 05c0c27808..d894802ce6 100644 --- a/server/views/certificate/full-stack.jade +++ b/server/views/certificate/full-stack.jade @@ -1,5 +1,5 @@ meta(name='viewport', content='width=device-width, initial-scale=1') -link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css') include styles .certificate-wrapper.container diff --git a/server/views/partials/react-stylesheets.jade b/server/views/partials/react-stylesheets.jade index c2b5eae507..0517a76730 100644 --- a/server/views/partials/react-stylesheets.jade +++ b/server/views/partials/react-stylesheets.jade @@ -1,9 +1,9 @@ link(rel='stylesheet', type='text/css' href='/css/lato.css') link(rel='stylesheet', type='text/css' href='/css/ubuntu.css') -link(rel='stylesheet', href='/bower_components/font-awesome/css/font-awesome.min.css') -link(rel='stylesheet', href='/bower_components/CodeMirror/lib/codemirror.css') -link(rel='stylesheet', href='/bower_components/CodeMirror/addon/lint/lint.css') -link(rel='stylesheet', href='/bower_components/CodeMirror/theme/monokai.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.15.2/codemirror.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.15.2/addon/lint/lint.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.15.2/theme/monokai.min.css') link(rel='stylesheet', href=rev('/css', 'main.css')) include meta diff --git a/server/views/partials/stylesheets.jade b/server/views/partials/stylesheets.jade index d610f792cc..6dc4f1235a 100644 --- a/server/views/partials/stylesheets.jade +++ b/server/views/partials/stylesheets.jade @@ -1,5 +1,5 @@ link(rel='stylesheet', type='text/css' href='/css/lato.css') -link(rel="stylesheet" type="text/css" href="/bower_components/cal-heatmap/cal-heatmap.css") -link(rel='stylesheet', href='/bower_components/font-awesome/css/font-awesome.min.css') -link(rel='stylesheet', href='/bower_components/lightbox2/dist/css/lightbox.css') +link(rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cal-heatmap/3.5.2/cal-heatmap.css") +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css') +link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.8.2/css/lightbox.min.css') link(rel='stylesheet', href=rev('/css', 'main.css'))