Compare commits

...

11 Commits

Author SHA1 Message Date
Chris d2b6d1a7ac 0.3.0 2015-10-22 12:44:58 +02:00
Chris d49fa2cc22 Merge pull request #6 from sthzg/feat_check_production_builds
Feature from @sthzg: #4 -- added DefinePlugin to plugins for dist builds (see https://github.com/weblogixx/react-webpack-template/issues/4)
2015-10-22 12:41:27 +02:00
sthzg 448ad72b83 #4 -- added DefinePlugin to plugins for dist builds 2015-10-22 10:58:39 +02:00
Chris e167efec72 Updated README with new phrasing (it IS the base for generator-react-webpack now) 2015-10-21 16:06:42 +02:00
Chris 71d7fa388d Merge pull request #5 from sthzg/feat_env_based_app_configs
Feature from @sthzg: #1 -- added support to import app configuration based on --env
2015-10-21 15:47:36 +02:00
sthzg 236012dea6 #1 -- added support to import app configuration based on --env 2015-10-21 12:37:52 +02:00
Chris 8550022eb5 Merge pull request #3 from mjul/patch-1
Feature by @mjul: Add target to run tests continuously
2015-10-21 07:45:25 +02:00
Martin Jul 1424f8f41d Add info on running tests continuously 2015-10-20 16:25:32 +02:00
Martin Jul e710db370c Add target to run tests continuously
Enables `npm run test:watch`
2015-10-20 16:15:57 +02:00
Chris 00414460b2 0.2.2 2015-10-19 10:46:21 +02:00
Chris f1eb6504e0 Added current version of webpack-dev-server to dependencies list 2015-10-19 10:46:10 +02:00
11 changed files with 73 additions and 11 deletions
+12 -7
View File
@@ -5,25 +5,25 @@ It can be understood 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)
## Features
The following features are planned to be included in the final version:
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] No dependency on grunt, gulp or the next hot taskrunner!
- [x] The dynamic webpack configuration is clunky, there must be a better way to do that!
- [x] Karmas webpack configuration is not included in the global webpack.config.js file, but it really should
- [x] Support for environment-specific configuration files
## Todo
- [ ] Better performance for webpack builds
## What is it for?
This template can be used directly for the creation of new projects.
Also it will be the "template" for the next version of generator-react-webpack.
This template can be used directly for the creation of new projects. When using it like this, make sure to ___not___ install it via npm but download it directly. The template is (nearly) useless for itself when downloaded via npm!
Basically, it is currently only used as the base template of [generator-react-webpack](https://github.com/newtriks/generator-react-webpack).
## Using it
The template is available via webpack. The following commands are available:
The template uses webpack as build tool to serve files and run tests. The following commands are available:
```bash
# Start for development
npm start # or
@@ -38,6 +38,9 @@ npm run dist
# Run unit tests
npm test
# Run the unit tests continuously (repeat the test when code changes are saved)
npm run test:watch
# Lint all files in src (also automatically done AFTER tests are run)
npm run lint
@@ -66,4 +69,6 @@ webpack-dev-server --env=dist
react-webpack-template is available under MIT-License and can therefore be used in any project free of charge.
## Contributors
- Weblogixx (cs@weblogixx.de)
- Christian Schilling (cs@weblogixx.de)
- Martin Jul (martin@mjul.com)
- Stephan Herzog (sthzgvie@gmail.com)
+2 -1
View File
@@ -27,7 +27,8 @@ module.exports = {
components: srcPath + '/components/',
sources: srcPath + '/sources/',
stores: srcPath + '/stores/',
styles: srcPath + '/styles/'
styles: srcPath + '/styles/',
config: srcPath + '/config/' + process.env.REACT_WEBPACK_ENV
}
},
module: {
+3
View File
@@ -10,6 +10,9 @@ var config = _.merge({
devtool: 'sourcemap',
plugins: [
new webpack.optimize.DedupePlugin(),
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"'
}),
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.AggressiveMergingPlugin(),
+2 -1
View File
@@ -27,7 +27,8 @@ module.exports = {
components: srcPath + 'components/',
sources: srcPath + 'sources/',
stores: srcPath + 'stores/',
styles: srcPath + 'styles/'
styles: srcPath + 'styles/',
config: srcPath + 'config/' + process.env.REACT_WEBPACK_ENV
}
}
};
+3 -2
View File
@@ -1,11 +1,12 @@
{
"name": "react-webpack-template",
"version": "0.2.1",
"version": "0.3.0",
"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",
"posttest": "npm run lint",
"serve": "node server.js --env=dev",
"serve:dist": "node server.js --env=dist",
@@ -62,7 +63,7 @@
"style-loader": "^0.12.3",
"url-loader": "^0.5.6",
"webpack": "^1.12.0",
"webpack-dev-server": "^1.10.1"
"webpack-dev-server": "^1.12.0"
},
"dependencies": {
"lodash": "^3.10.1",
+17
View File
@@ -0,0 +1,17 @@
# About this folder
This folder holds configuration files for different environments.
You can use it to provide your app with different settings based on the
current environment, e.g. to configure different API base urls depending on
whether your setup runs in dev mode or is built for distribution.
You can include the configuration into your code like this:
```javascript
let react = require('react/addons');
let config = require('config');
class MyComponent extends React.Component {
constructor(props) {
super(props);
let currentAppEnv = config.appEnv;
}
}
```
+7
View File
@@ -0,0 +1,7 @@
'use strict';
const config = {
appEnv: 'dev' // feel free to remove the appEnv property here
};
export default config;
+7
View File
@@ -0,0 +1,7 @@
'use strict';
const config = {
appEnv: 'dist' // feel free to remove the appEnv property here
};
export default config;
+7
View File
@@ -0,0 +1,7 @@
'use strict';
const config = {
appEnv: 'test' // don't remove the appEnv property here
};
export default config;
+12
View File
@@ -0,0 +1,12 @@
/*eslint-env node, mocha */
/*global expect */
/*eslint no-console: 0*/
'use strict';
import config from 'config';
describe('appEnvConfigTests', () => {
it('should load app config file depending on current --env', () => {
expect(config.appEnv).to.equal('test');
});
});
+1
View File
@@ -15,6 +15,7 @@ if(args._.length > 0 && args._.indexOf('start') !== -1) {
} else {
env = 'dev';
}
process.env.REACT_WEBPACK_ENV = env;
// Get available configurations
var configs = {