Skip to content

Commit c142837

Browse files
committedApr 30, 2016
Update dependencies (quran#288)
* Update dependencies * forgot dep * brower polyfill * unneeded deps * karma mistake * should no more * bump travis * dep register * forgot dep * forgot dep * forgot dep * babel-polyfill
1 parent 5e8323d commit c142837

11 files changed

+106
-62
lines changed
 

‎.babelrc

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"presets": ["react", "es2015", "stage-0"],
3+
"plugins": [
4+
"transform-runtime",
5+
"add-module-exports",
6+
"transform-decorators-legacy",
7+
"transform-react-display-name"
8+
],
9+
"env": {
10+
"test": {
11+
"plugins": [
12+
"rewire"
13+
]
14+
},
15+
"development": {
16+
"plugins": [
17+
"typecheck",
18+
["react-transform", {
19+
"transforms": [{
20+
"transform": "react-transform-catch-errors",
21+
"imports": ["react", "redbox-react"]
22+
}
23+
]
24+
}]
25+
]
26+
}
27+
}
28+
}

‎.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ sudo: false
22
language: node_js
33
env: TEST_SUITE=unit
44
node_js:
5-
- "0.12"
5+
- "5.6.0"
66
cache:
77
directories:
88
- node_modules

‎README.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Reactjs + Redux + Expressjs + Webpack. It is isomorphic (javascript shared
99
between both the server and the client) for SEO reasons.
1010

1111
[![Dependency Status](https://david-dm.org/quran/quran.com-frontend.svg)](https://david-dm.org/quran/quran.com-frontend)
12+
[![Code Climate](https://codeclimate.com/github/quran/quran.com-frontend.png)](https://codeclimate.com/github/quran/quran.com-frontend)
1213

1314
#### Getting started
1415
Simply clone this repo, then run `npm install` to install all the required node_modules.

‎client.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*global document, window, $ */
2-
require('babel/polyfill');
2+
require('babel-polyfill');
33

44
import React from 'react';
55
import ReactDOM from 'react-dom';

‎karma.conf.js

+1-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ module.exports = function(config) {
2222

2323
// list of files / patterns to load in the browser
2424
files: [
25-
'node_modules/babel-core/browser-polyfill.js',
2625
'./node_modules/phantomjs-polyfill/bind-polyfill.js',
2726
'./tests/polyfill/Event.js',
2827
{pattern: "static/images/*", watched: false, included: false, served: true},
@@ -69,11 +68,7 @@ module.exports = function(config) {
6968
{
7069
test: /\.(js|jsx)$/,
7170
exclude: [/server/, /node_modules/, /tests/],
72-
loader: 'babel',
73-
query: {
74-
stage: 0,
75-
plugins: []
76-
}
71+
loader: 'babel'
7772
},
7873
{ test: /\.json$/, loader: 'json-loader'},
7974
{ test: /\.scss$/, loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap' },

‎nightwatch.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ require('dotenv').config({path: (process.env.NODE_ENV || 'development') + '.env'
22
require('app-module-path').addPath(__dirname);
33
require('app-module-path').addPath('./src/scripts');
44

5-
require("babel/register")({
6-
stage: 0,
7-
plugins: ["typecheck"]
8-
});
5+
require("babel-register");
96

107
global.__CLIENT__ = false;
118
global.__SERVER__ = true;

‎package.json

+17-17
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,18 @@
2424
"dependencies": {
2525
"app-module-path": "^1.0.2",
2626
"autoprefixer-loader": "^3.1.0",
27-
"babel": "^5.8.23",
28-
"babel-loader": "5.3.2",
29-
"babel-plugin-typecheck": "1.2.0",
27+
"babel": "^6.5.2",
28+
"babel-loader": "^6.2.4",
29+
"babel-plugin-add-module-exports": "^0.1.4",
30+
"babel-plugin-transform-decorators-legacy": "^1.3.4",
31+
"babel-plugin-transform-react-display-name": "^6.5.0",
32+
"babel-plugin-transform-runtime": "^6.7.5",
33+
"babel-plugin-typecheck": "^3.8.0",
34+
"babel-polyfill": "^6.7.4",
35+
"babel-preset-es2015": "^6.6.0",
36+
"babel-preset-stage-0": "^6.5.0",
37+
"babel-register": "^6.7.2",
38+
"babel-runtime": "^6.6.1",
3039
"body-parser": "^1.14.1",
3140
"bootstrap-sass": "~3.3.1",
3241
"bootstrap-sass-loader": "^1.0.9",
@@ -51,7 +60,6 @@
5160
"html-webpack-plugin": "^1.4.0",
5261
"http-proxy": "^1.13.2",
5362
"humps": "^1.0.0",
54-
"immutable": "^3.7.4",
5563
"imports-loader": "^0.6.3",
5664
"jquery": "^2.1.4",
5765
"json-loader": "~0.5.1",
@@ -65,14 +73,11 @@
6573
"proxy-middleware": "^0.14.0",
6674
"qs": "^6.1.0",
6775
"raw-loader": "^0.5.1",
68-
"react": "^0.14.2",
76+
"react": "^0.14.7",
6977
"react-bootstrap": "^0.28.4",
7078
"react-cookie": "^0.3.4",
7179
"react-dom": "^0.14.0",
72-
"react-google-analytics": "^0.2.0",
7380
"react-helmet": "^2.3.1",
74-
"react-i13n": "^1.0.0",
75-
"react-i13n-ga": "^0.1.3",
7681
"react-metrics": "^1.1.0",
7782
"react-paginate": "^0.4.0",
7883
"react-redux": "^4.4.1",
@@ -89,29 +94,24 @@
8994
"sitemap": "^1.5.0",
9095
"style-loader": "^0.13.1",
9196
"superagent": "^1.2.0",
92-
"superagent-promise": "^1.0.3",
9397
"url": "^0.11.0",
9498
"url-loader": "~0.5.5",
9599
"webpack": "^1.10.3",
96100
"webpack-isomorphic-tools": "^2.2.41",
97101
"winston": "^1.1.2"
98102
},
99103
"devDependencies": {
100-
"babel-core": "^5.8.24",
101-
"babel-eslint": "^4.1.1",
102-
"babel-plugin-react-transform": "^1.1.1",
103-
"babel-runtime": "^5.8.24",
104+
"babel-core": "^6.7.7",
105+
"babel-eslint": "^6.0.4",
106+
"babel-plugin-react-transform": "^2.0.2",
107+
"babel-preset-react": "^6.5.0",
104108
"chai": "^3.0.0",
105109
"chromedriver": "^2.19.0",
106-
"clean-webpack-plugin": "^0.1.3",
107110
"del": "^2.0.2",
108111
"enzyme": "^2.2.0",
109112
"eslint": "^1.4.1",
110113
"eslint-loader": "^1.0.0",
111114
"eslint-plugin-react": "^3.3.2",
112-
"gulp": "^3.8.11",
113-
"gulp-nodemon": "^2.0.2",
114-
"gulp-util": "^3.0.4",
115115
"jscs": "^2.1.1",
116116
"karma": "^0.13.9",
117117
"karma-chai": "^0.1.0",

‎start.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ require('dotenv').config({path: (process.env.NODE_ENV || 'development') + '.env'
22
require('app-module-path').addPath(__dirname);
33
require('app-module-path').addPath('./src/scripts');
44

5-
require("babel/register")({
6-
stage: 0,
7-
plugins: ["typecheck"]
8-
});
5+
require('babel-register');
96

107
global.__CLIENT__ = false;
118
global.__SERVER__ = true;

‎tests.webpack.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
require('babel-polyfill');
12
var testContext = require.context('./src', true, /(\.spec|spec)\.js$/);
23
testContext.keys().forEach(testContext);

‎webpack.config.js

+53-24
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,62 @@
11
require('dotenv').config({path: (process.env.NODE_ENV || 'development') + '.env'});
2+
var fs = require('fs');
3+
var path = require('path');
24
var webpack = require('webpack');
35
var path = require('path');
46
var ExtractTextPlugin = require('extract-text-webpack-plugin');
57
var IsomorphicPlugin = require('webpack-isomorphic-tools/plugin');
68
var webpackIsomorphicToolsPlugin = new IsomorphicPlugin(require('./webpack-isomorphic-tools-configuration'));
79

8-
var webpackConfig = {
10+
var babelrc = fs.readFileSync('./.babelrc');
11+
var babelrcObject = {};
12+
13+
try {
14+
babelrcObject = JSON.parse(babelrc);
15+
} catch (err) {
16+
console.error('==> ERROR: Error parsing your .babelrc.');
17+
console.error(err);
18+
}
19+
20+
var babelrcObjectDevelopment = babelrcObject.env && babelrcObject.env.development || {};
21+
22+
// merge global and dev-only plugins
23+
var combinedPlugins = babelrcObject.plugins || [];
24+
combinedPlugins = combinedPlugins.concat(babelrcObjectDevelopment.plugins);
25+
26+
var babelLoaderQuery = Object.assign({}, babelrcObjectDevelopment, babelrcObject, {plugins: combinedPlugins});
27+
delete babelLoaderQuery.env;
28+
29+
// Since we use .babelrc for client and server, and we don't want HMR enabled on the server, we have to add
30+
// the babel plugin react-transform-hmr manually here.
31+
32+
// make sure react-transform is enabled
33+
babelLoaderQuery.plugins = babelLoaderQuery.plugins || [];
34+
var reactTransform = null;
35+
for (var i = 0; i < babelLoaderQuery.plugins.length; ++i) {
36+
var plugin = babelLoaderQuery.plugins[i];
37+
if (Array.isArray(plugin) && plugin[0] === 'react-transform') {
38+
reactTransform = plugin;
39+
}
40+
}
41+
42+
if (!reactTransform) {
43+
reactTransform = ['react-transform', {transforms: []}];
44+
babelLoaderQuery.plugins.push(reactTransform);
45+
}
46+
47+
if (!reactTransform[1] || !reactTransform[1].transforms) {
48+
reactTransform[1] = Object.assign({}, reactTransform[1], {transforms: []});
49+
}
50+
51+
// make sure react-transform-hmr is enabled
52+
reactTransform[1].transforms.push({
53+
transform: 'react-transform-hmr',
54+
imports: ['react'],
55+
locals: ['module']
56+
});
57+
babelLoaderQuery.cacheDirectory = true;
58+
59+
module.exports = {
960
context: path.join(process.env.PWD, './'),
1061
resolve: {
1162
extensions: ['', '.js'],
@@ -36,11 +87,7 @@ var webpackConfig = {
3687
{
3788
test: /\.(js|jsx)$/,
3889
exclude: [/server/, /node_modules/, /tests/],
39-
loader: 'babel',
40-
query: {
41-
stage: 0,
42-
plugins: []
43-
}
90+
loader: 'babel?' + JSON.stringify(babelLoaderQuery)
4491
},
4592
{ test: /\.json$/, loader: 'json-loader'},
4693
{ test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff" },
@@ -92,21 +139,3 @@ var webpackConfig = {
92139
tls: 'empty'
93140
}
94141
};
95-
// The reason this is here and NOT in .babelrc like it should is because our
96-
// nodejs server picks up babel too and isn't happy with this!
97-
webpackConfig.module.loaders[0].query.plugins.push('react-transform');
98-
webpackConfig.module.loaders[0].query.extra = {
99-
'react-transform': {
100-
transforms: [{
101-
transform: 'react-transform-hmr',
102-
imports: ['react'],
103-
locals: ['module']
104-
},
105-
{
106-
"transform": "react-transform-catch-errors",
107-
"imports": ["react", "redbox-react"]
108-
}]
109-
}
110-
};
111-
112-
module.exports = webpackConfig;

‎webpack.prod.config.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,7 @@ module.exports = {
4747
{
4848
test: /\.(js|jsx)$/,
4949
exclude: [/server/, /node_modules/, /tests/],
50-
loader: 'babel',
51-
query: {
52-
stage: 0,
53-
plugins: []
54-
}
50+
loader: 'babel'
5551
},
5652
{ test: /\.json$/, loader: 'json-loader'},
5753
{ test: /\.scss$/, loader: ExtractTextPlugin.extract('style', 'css?modules&importLoaders=2&sourceMap!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap=true&sourceMapContents=true') },

0 commit comments

Comments
 (0)
Please sign in to comment.