Compare commits

..

29 Commits

Author SHA1 Message Date
Chris f4fcd9111e 1.0.3 2015-12-04 09:24:40 +01:00
Chris 73fffaf9b9 Added support for babel-eslint (as suggested in https://github.com/newtriks/generator-react-webpack/issues/173) 2015-12-04 09:24:22 +01:00
Chris c6901b226a Merge pull request #16 from HelloYie/master
fix eslint-loader path error (Provided by @HelloYie)
2015-11-30 12:43:22 +01:00
HelloYie 7742d6d89b fix eslint-loader path error 2015-11-30 18:58:10 +08:00
Chris bcfc2f429f Merge pull request #13 from sthzg/feat_update_app_config
Config -- added base config object for env-independent settings (Provided by @sthzg)
2015-11-23 09:09:09 +01:00
sthzg 6d886d8bbc Config -- added base config object for env-independent settings 2015-11-20 13:28:22 +01:00
Chris b55b6f9216 1.0.2 2015-11-20 08:36:05 +01:00
Chris 3c46890e3f Updated dev dependencies to latest versions 2015-11-20 08:35:53 +01:00
Chris c4e5b5448f Merge pull request #15 from stylesuxx/feature/css
Changed loader names for sake of consistency (Provided by @stylesuxx)
2015-11-19 07:26:09 +01:00
stylesuxx c4855a696b Changed loader names for sake of consistency 2015-11-18 23:20:49 +01:00
Chris fb1f271f6b 1.0.1 2015-11-18 08:12:34 +01:00
Chris 5d512c5bf5 Adjusted changelog to reflect isparta update 2015-11-18 08:08:51 +01:00
Chris 9ecfa9ef90 Added fix for isparta version update 2015-11-18 08:06:51 +01:00
Chris 614fcfc54e 1.0.0 2015-11-17 07:39:46 +01:00
Chris bbd0f7666e Updated babel to 6.0 2015-11-17 07:39:34 +01:00
Chris 33150f0cf6 Reverted fix for config merge. 2015-10-29 08:34:29 +01:00
Chris 831fb6f8b9 Merge branch 'master' of https://github.com/weblogixx/react-webpack-template 2015-10-29 08:32:34 +01:00
Chris 2538e2c405 Reverted fix for config merge. 2015-10-29 08:32:27 +01:00
Chris 4cd213706e Merge pull request #10 from mjul/merge_order
Fix override order for base.js and dev.js / dist.js
2015-10-29 08:03:40 +01:00
Martin Jul b3f99eb73e Fix override order for base.js and dev.js / dist.js 2015-10-27 23:27:18 +01:00
Chris a6867e3c9f 0.3.2 2015-10-27 08:47:03 +01:00
Chris 827dd86a3c Added support for bower components, as requested in https://github.com/weblogixx/react-webpack-template/issues/8 2015-10-27 08:45:12 +01:00
Chris 89f6f1701b Added support for coverage reporting (as requested in https://github.com/newtriks/generator-react-webpack/issues/158) 2015-10-27 08:08:26 +01:00
Chris ed4e8a17f3 0.3.1 2015-10-23 09:46:08 +02:00
Chris 99ef0116e0 Updated changelog for 0.3.1 2015-10-23 09:45:53 +02:00
Chris 3027a257aa Added new dev dependencies and some badges 2015-10-23 09:41:39 +02:00
Chris 65ffe317bc Merge pull request #7 from mjul/autowatch
Update by @mjul: Don't rely Karma autoWatch being true in config
2015-10-23 00:08:57 +02:00
Martin Jul 61a6776cc8 Don't rely Karma autoWatch being true in config 2015-10-22 23:36:13 +02:00
Chris d548936421 Updated changelog to reflect new pull requests. 2015-10-22 12:47:03 +02:00
19 changed files with 171 additions and 28 deletions
+6
View File
@@ -0,0 +1,6 @@
{
"presets": [
"es2015",
"react"
]
}
+1
View File
@@ -1,4 +1,5 @@
{
"parser": "babel-eslint",
"plugins": [
"react"
],
+3
View File
@@ -25,3 +25,6 @@ build/Release
# Dependency directory
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
node_modules
# Bower
bower_components/
+41
View File
@@ -1,9 +1,50 @@
# react-webpack-template - Changelog
## 1.0.2:
1. Added babel-eslint (as suggested in https://github.com/newtriks/generator-react-webpack/issues/173)
## 1.0.2:
1. Updated css-loader to current stable (0.23)
2. Updated glob to new major (5.x to 6.x)
## 1.0.1:
___Upgrades___:
1. Updated isparta-instrumenter-loader to new version 1.0
## 1.0.0:
___Upgrades___:
1. Updated to babel core version (6.0.x)
2. Replaced isparta-loader with the more current (and better maintained) isparta-instrumenter-loader.
## 0.3.2:
___Features___:
1. Added support for bower components in webpack
2. Added coverage reporting via karma-coverage
## 0.3.1:
___Upgrades___:
1. Added bugfix for tests in watch mode (could be overridden by config)
2. Added new badges to README
3. Updated devDependencies to current ones
## 0.3.0:
___Upgrades___:
1. Added webpacks define plugin for dist version
2. Added new task ```test:watch``` to watch for changes
## 0.2.0:
___Upgrades:___
1. Updated React from 0.13 to 0.14 (using ```^0.14```) as version string. This included minor code changes for components (now use the splitted "React"-Package) and the runner (Using React-DOM).
2. Updated the shallow renderer for unit tests.
___Backwards incompatible changes:___
1. Default unit tests do not need to traverse down to `Component._store.props`, but directly to `Component.props`. Please keep this in mind when using properties in your tests.
+1 -2
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2015 Chris
Copyright (c) 2015 Christian Schilling <cs@weblogixx.de>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -19,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+29 -4
View File
@@ -1,8 +1,8 @@
# Welcome to react-webpack-template
> This repository holds a base template for the new version of generator-react-webpack.
It can be understood as the prototype for newly generated projects.
> This repository holds the base template for the current version of [generator-react-webpack](https://github.com/newtriks/generator-react-webpack).
It can also be used as the prototype for newly generated projects.
[![Build Status](https://travis-ci.org/weblogixx/react-webpack-template.svg)](https://travis-ci.org/weblogixx/react-webpack-template)
[![Build Status](https://travis-ci.org/weblogixx/react-webpack-template.svg)](https://travis-ci.org/weblogixx/react-webpack-template) ![Amount of Downloads per month](https://img.shields.io/npm/dm/react-webpack-template.svg "Amount of Downloads") ![Dependency Tracker](https://img.shields.io/david/weblogixx/react-webpack-template.svg "Dependency Tracker") ![Dependency Tracker](https://img.shields.io/david/dev/weblogixx/react-webpack-template.svg "Dependency Tracker")
## Features
The following features are currently included:
@@ -10,9 +10,10 @@ The following features are currently included:
- [x] Webpack and Webpack-Dev-Server, including hot-loader
- [x] Babel and JSX
- [x] Mocha Unit tests (*optional*)
- [x] EsLint Support
- [x] esLint Support
- [x] No dependency on grunt, gulp or the next hot taskrunner!
- [x] Support for environment-specific configuration files
- [x] Support for code coverage via [isparta-loader](https://github.com/deepsweet/isparta-loader)
## Todo
- [ ] Better performance for webpack builds
@@ -64,6 +65,30 @@ webpack-dev-server --env=dev
webpack --env=dist
webpack-dev-server --env=dist
```
## A note on unit testing
When running tests, coverage information (provided via Istanbul) will also be written into the ```coverage/``` directory. If you do not need this, just comment out or remove the section in ```karma.conf``` like this:
```javascript
/* do not use coverage reporting!
coverageReporter: {
type: 'html',
dir: 'coverage/'
}*/
```
Also, you should adjust your webpack test configuration (located in ```cfg/test.js```) to reflect this:
```javascript
/* Uncomment this to prevent loading via isparta
{
test: /\.(js|jsx)$/,
loader: 'babel-loader',
include: [
path.join(__dirname, '/../src')
],
loader: 'isparta'
}*/
```
## License
react-webpack-template is available under MIT-License and can therefore be used in any project free of charge.
+2 -2
View File
@@ -35,14 +35,14 @@ module.exports = {
preLoaders: [
{
test: /\.(js|jsx)$/,
include: path.join(__dirname, 'src'),
include: srcPath,
loader: 'eslint-loader'
}
],
loaders: [
{
test: /\.css$/,
loader: 'style!css'
loader: 'style-loader!css-loader'
},
{
test: /\.sass/,
+7 -1
View File
@@ -4,6 +4,9 @@ var _ = require('lodash');
var baseConfig = require('./base');
// Add needed plugins here
var BowerWebpackPlugin = require('bower-webpack-plugin');
var config = _.merge({
entry: [
'webpack-dev-server/client?http://127.0.0.1:8000',
@@ -14,7 +17,10 @@ var config = _.merge({
devtool: 'eval',
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin()
new webpack.NoErrorsPlugin(),
new BowerWebpackPlugin({
searchResolveModulesDirectories: false
})
]
}, baseConfig);
+6
View File
@@ -4,6 +4,9 @@ var _ = require('lodash');
var baseConfig = require('./base');
// Add needed plugins here
var BowerWebpackPlugin = require('bower-webpack-plugin');
var config = _.merge({
entry: path.join(__dirname, '../src/components/run'),
cache: false,
@@ -13,6 +16,9 @@ var config = _.merge({
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"'
}),
new BowerWebpackPlugin({
searchResolveModulesDirectories: false
}),
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.AggressiveMergingPlugin(),
+19 -2
View File
@@ -1,9 +1,21 @@
var path = require('path');
var srcPath = path.join(__dirname, '/../src/');
// Add needed plugins here
var BowerWebpackPlugin = require('bower-webpack-plugin');
module.exports = {
devtool: 'eval',
module: {
preLoaders: [
{
test: /\.(js|jsx)$/,
loader: 'isparta-instrumenter-loader',
include: [
path.join(__dirname, '/../src')
]
}
],
loaders: [
{
test: /\.(png|jpg|gif|woff|woff2|css|sass|scss|less|styl)$/,
@@ -20,7 +32,7 @@ module.exports = {
]
},
resolve: {
extensions: ['', '.js', '.jsx'],
extensions: [ '', '.js', '.jsx' ],
alias: {
actions: srcPath + 'actions/',
helpers: path.join(__dirname, '/../test/helpers'),
@@ -30,5 +42,10 @@ module.exports = {
styles: srcPath + 'styles/',
config: srcPath + 'config/' + process.env.REACT_WEBPACK_ENV
}
}
},
plugins: [
new BowerWebpackPlugin({
searchResolveModulesDirectories: false
})
]
};
+11 -4
View File
@@ -3,24 +3,31 @@ var webpackCfg = require('./webpack.config');
module.exports = function(config) {
config.set({
basePath: '',
browsers: ['PhantomJS'],
browsers: [ 'PhantomJS' ],
files: [
'test/loadtests.js'
],
port: 8080,
captureTimeout: 60000,
frameworks: ['phantomjs-shim', 'mocha', 'chai'],
frameworks: [ 'phantomjs-shim', 'mocha', 'chai' ],
client: {
mocha: {}
},
singleRun: true,
reporters: ['mocha'],
reporters: [ 'mocha', 'coverage' ],
preprocessors: {
'test/loadtests.js': ['webpack', 'sourcemap']
'test/loadtests.js': [ 'webpack', 'sourcemap' ]
},
webpack: webpackCfg,
webpackServer: {
noInfo: true
},
coverageReporter: {
dir: 'coverage/',
reporters: [
{ type: 'html' },
{ type: 'text' }
]
}
});
};
+14 -6
View File
@@ -1,12 +1,12 @@
{
"name": "react-webpack-template",
"version": "0.3.0",
"version": "1.0.3",
"description": "A base skeleton template for react and webpack without task runners",
"main": "server.js",
"scripts": {
"start": "node server.js --env=dev",
"test": "karma start",
"test:watch": "karma start --singleRun=false",
"test:watch": "karma start --autoWatch=true --singleRun=false",
"posttest": "npm run lint",
"serve": "node server.js --env=dev",
"serve:dist": "node server.js --env=dist",
@@ -36,17 +36,24 @@
},
"homepage": "https://github.com/weblogixx/react-webpack-template#readme",
"devDependencies": {
"babel-core": "^5.8.22",
"babel-loader": "^5.3.2",
"babel-core": "^6.0.0",
"babel-eslint": "^5.0.0-beta4",
"babel-loader": "^6.0.0",
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"bower-webpack-plugin": "^0.1.9",
"chai": "^3.2.0",
"copyfiles": "^0.2.1",
"css-loader": "^0.16.0",
"css-loader": "^0.23.0",
"eslint": "^1.2.1",
"eslint-loader": "^1.0.0",
"eslint-plugin-react": "^3.3.0",
"file-loader": "^0.8.4",
"glob": "^6.0.0",
"isparta-instrumenter-loader": "^1.0.0",
"karma": "^0.13.9",
"karma-chai": "^0.1.0",
"karma-coverage": "^0.5.3",
"karma-mocha": "^0.2.0",
"karma-mocha-reporter": "^1.1.1",
"karma-phantomjs-launcher": "^0.2.1",
@@ -60,12 +67,13 @@
"phantomjs": "^1.9.18",
"react-hot-loader": "^1.2.9",
"rimraf": "^2.4.3",
"style-loader": "^0.12.3",
"style-loader": "^0.13.0",
"url-loader": "^0.5.6",
"webpack": "^1.12.0",
"webpack-dev-server": "^1.12.0"
},
"dependencies": {
"core-js": "^1.2.6",
"lodash": "^3.10.1",
"normalize.css": "^3.0.3",
"react": "^0.14.0",
+1
View File
@@ -1,4 +1,5 @@
/*eslint no-console:0 */
require('core-js/fn/object/assign');
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');
+1
View File
@@ -1,3 +1,4 @@
import 'core-js/fn/object/assign';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './Main';
+6
View File
@@ -0,0 +1,6 @@
'use strict';
// Settings configured here will be merged into the final config object.
export default {
}
+5 -2
View File
@@ -1,7 +1,10 @@
'use strict';
const config = {
import baseConfig from './base';
let config = {
appEnv: 'dev' // feel free to remove the appEnv property here
};
export default config;
export default Object.freeze(Object.assign({}, baseConfig, config));
+6 -2
View File
@@ -1,7 +1,11 @@
'use strict';
const config = {
import baseConfig from './base';
let config = {
appEnv: 'dist' // feel free to remove the appEnv property here
};
export default config;
export default Object.freeze(Object.assign({}, baseConfig, config));
+6 -2
View File
@@ -1,7 +1,11 @@
'use strict';
const config = {
import baseConfig from './base';
let config = {
appEnv: 'test' // don't remove the appEnv property here
};
export default config;
export default Object.freeze(Object.assign(baseConfig, config));
+6 -1
View File
@@ -1,2 +1,7 @@
var testsContext = require.context('.', true, /(Test\.js$)|(Helper\.js$)/);
'use strict';
require('core-js/fn/object/assign');
// Add support for all files in the test directory
const testsContext = require.context('.', true, /(Test\.js$)|(Helper\.js$)/);
testsContext.keys().forEach(testsContext);