mirror of
https://github.com/wassname/generator-react-webpack.git
synced 2026-08-30 11:23:47 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b95fc4344a | ||
|
|
66b85f48d8 | ||
|
|
bf2df82159 | ||
|
|
d729c3caa8 | ||
|
|
4f99a5a9db | ||
|
|
190cfdac06 | ||
|
|
ca3f923bf0 | ||
|
|
57a2ac9325 | ||
|
|
de5cca9866 | ||
|
|
4e8d7af872 | ||
|
|
85470145f5 | ||
|
|
520db61333 | ||
|
|
260758f93b | ||
|
|
361ea7409d |
@@ -13,3 +13,4 @@ $RECYCLE.BIN/
|
|||||||
node_modules/
|
node_modules/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
.idea/
|
.idea/
|
||||||
|
test/temp-test
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# generator-react-webpack - Changelog
|
||||||
|
|
||||||
|
## 2.2.0:
|
||||||
|
___Upgrades:___
|
||||||
|
|
||||||
|
1. Added new version of react-webpack-template, including support for React 0.14.
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
# generator-react-webpack V2.0 [](https://travis-ci.org/newtriks/generator-react-webpack) [](http://gruntjs.com/)
|
# generator-react-webpack V2.0 [](https://travis-ci.org/newtriks/generator-react-webpack) [](https://bitdeli.com/free "Bitdeli Badge")
|
||||||
|
|
||||||
> Yeoman generator for [ReactJS](http://facebook.github.io/react/) - lets you quickly set up a project including karma test runner and [Webpack](http://webpack.github.io/) module system.
|
> Yeoman generator for [ReactJS](http://facebook.github.io/react/) - lets you quickly set up a project including karma test runner and [Webpack](http://webpack.github.io/) module system.
|
||||||
|
|
||||||
# About
|
# About
|
||||||
@@ -13,13 +12,16 @@ Out of the box it comes with support for:
|
|||||||
- Ability to unit test components via Karma and Mocha/Chai
|
- Ability to unit test components via Karma and Mocha/Chai
|
||||||
|
|
||||||
## Changes in Version 2.0
|
## Changes in Version 2.0
|
||||||
The new version of generator-react-webpack does __NOT__ include support for Flux-Frameworks directly. Instead, we will use it as a base to provide own generators that use it as a base. This will make the base generator easier to use and update.
|
This generator is written in ES2015. This means it is ___not compatible with node.js versions before 4.0___.
|
||||||
|
|
||||||
Currently, there are no stable flux implementation based on generator-react-webpack v2. We are working on an implementation for alt.js.
|
It also does __NOT__ include support for Flux-Frameworks anymore. Instead, we will use it as a base for other generators to build upon. This will make the base generator easier to use and update.
|
||||||
|
|
||||||
If you are interested, feel free to write your own generator and use generator-react-webpack as a base (via composition).
|
If you are interested, feel free to write your own generator and use generator-react-webpack as a base (via composition).
|
||||||
|
|
||||||
If you have build a generator using generator-react-webpack, tell us and we will add a link to our README.
|
If you have built a generator using generator-react-webpack, tell us and we will add a link to our README.
|
||||||
|
|
||||||
|
## Generators that extend generator-react-webpack
|
||||||
|
- [Generator-React-Webpack-Alt](https://github.com/weblogixx/generator-react-webpack-alt) (Adds ability to create actions, stores and sources for [alt.js](http://alt.js.org))
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -82,13 +84,9 @@ We have opted to follow [@floydophone](https://twitter.com/floydophone) conventi
|
|||||||
Each component is a module and can be required using the [Webpack](http://webpack.github.io/) module system. [Webpack](http://webpack.github.io/) uses [Loaders](http://webpack.github.io/docs/loaders.html) which means you can also require CSS and a host of other file types. Read the [Webpack documentation](http://webpack.github.io/docs/home.html) to find out more.
|
Each component is a module and can be required using the [Webpack](http://webpack.github.io/) module system. [Webpack](http://webpack.github.io/) uses [Loaders](http://webpack.github.io/docs/loaders.html) which means you can also require CSS and a host of other file types. Read the [Webpack documentation](http://webpack.github.io/docs/home.html) to find out more.
|
||||||
|
|
||||||
## Props
|
## Props
|
||||||
|
Thanks to [Edd Hannay](https://github.com/eddhannay) for his Webpack optimisations, my local merge and testing meant his additions lost his signature (my fault, sorry). So, big thanks Edd.
|
||||||
Thanks to all who contributed to [generator-angular](https://github.com/yeoman/generator-angular) as the majority of code here has been shamelessy sourced from that repos.
|
|
||||||
|
|
||||||
Thanks to [Edd Hannay](https://github.com/eddhannay) for his Webpack optimisations, my local merge and testing meant his additions lost his signature (my fault sorry) so big thanks Edd.
|
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
|
|
||||||
Contributions are welcomed. When submitting a bugfix, write a test that exposes the bug and fails before applying your fix. Submit the test alongside the fix.
|
Contributions are welcomed. When submitting a bugfix, write a test that exposes the bug and fails before applying your fix. Submit the test alongside the fix.
|
||||||
|
|
||||||
### Running Tests
|
### Running Tests
|
||||||
@@ -97,5 +95,3 @@ Contributions are welcomed. When submitting a bugfix, write a test that exposes
|
|||||||
## License
|
## License
|
||||||
|
|
||||||
[BSD license](http://opensource.org/licenses/bsd-license.php)
|
[BSD license](http://opensource.org/licenses/bsd-license.php)
|
||||||
|
|
||||||
[](https://bitdeli.com/free "Bitdeli Badge")
|
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ module.exports = generator.Base.extend({
|
|||||||
let excludeList = [
|
let excludeList = [
|
||||||
'LICENCE',
|
'LICENCE',
|
||||||
'README.md',
|
'README.md',
|
||||||
|
'CHANGELOG.md',
|
||||||
'node_modules',
|
'node_modules',
|
||||||
'package.json'
|
'package.json'
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import React from 'react/addons';
|
import React from 'react';
|
||||||
|
|
||||||
require('<%= style.webpackPath %>');
|
require('<%= style.webpackPath %>');
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// Uncomment the following lines to use the react test utilities
|
// Uncomment the following lines to use the react test utilities
|
||||||
// import React from 'react/addons';
|
// import TestUtils from 'react-addons-test-utils';
|
||||||
// const TestUtils = React.addons.TestUtils;
|
|
||||||
import createComponent from 'helpers/shallowRenderHelper';
|
import createComponent from 'helpers/shallowRenderHelper';
|
||||||
|
|
||||||
import <%= component.className %> from '<%= component.webpackPath %>';
|
import <%= component.className %> from '<%= component.webpackPath %>';
|
||||||
@@ -18,6 +17,6 @@ describe('<%= component.className %>', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should have its component name as default className', () => {
|
it('should have its component name as default className', () => {
|
||||||
expect(component._store.props.className).to.equal('<%= style.className %>');
|
expect(component.props.className).to.equal('<%= style.className %>');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+5
-3
@@ -1,14 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "generator-react-webpack",
|
"name": "generator-react-webpack",
|
||||||
"version": "2.1.0",
|
"version": "2.2.2",
|
||||||
"description": "Yeoman generator for ReactJS and Webpack",
|
"description": "Yeoman generator for using React with Webpack via Babel",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"yeoman-generator",
|
"yeoman-generator",
|
||||||
|
"react",
|
||||||
"reactjs",
|
"reactjs",
|
||||||
"webpack",
|
"webpack",
|
||||||
"scaffold",
|
"scaffold",
|
||||||
"framework",
|
"framework",
|
||||||
"component",
|
"component",
|
||||||
|
"frontend",
|
||||||
"front-end",
|
"front-end",
|
||||||
"app"
|
"app"
|
||||||
],
|
],
|
||||||
@@ -35,7 +37,7 @@
|
|||||||
"test": "mocha"
|
"test": "mocha"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react-webpack-template": "^0.1.0",
|
"react-webpack-template": "^0.2.0",
|
||||||
"underscore.string": "^3.2.2",
|
"underscore.string": "^3.2.2",
|
||||||
"yeoman-generator": "^0.20.3",
|
"yeoman-generator": "^0.20.3",
|
||||||
"yeoman-welcome": "^1.0.1"
|
"yeoman-welcome": "^1.0.1"
|
||||||
|
|||||||
@@ -109,4 +109,12 @@ describe('Utilities:Yeoman', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#getDestinationClassName', () => {
|
||||||
|
|
||||||
|
it('should return the correct javascript class name for the given paths', () => {
|
||||||
|
expect(utils.getDestinationClassName('test', 'action', 'Actions')).to.equal('TestActions');
|
||||||
|
expect(utils.getDestinationClassName('test', 'source', 'Source')).to.equal('TestSource');
|
||||||
|
expect(utils.getDestinationClassName('test', 'store', 'Store')).to.equal('TestStore');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -51,7 +51,8 @@
|
|||||||
"value": "sass",
|
"value": "sass",
|
||||||
"suffix": ".sass",
|
"suffix": ".sass",
|
||||||
"packages": [
|
"packages": [
|
||||||
{ "name": "sass-loader", "version": "^1.0.1" }
|
{ "name": "sass-loader", "version": "^1.0.1" },
|
||||||
|
{ "name": "node-sass", "version": "^3.3.3" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -59,7 +60,8 @@
|
|||||||
"value": "scss",
|
"value": "scss",
|
||||||
"suffix": ".scss",
|
"suffix": ".scss",
|
||||||
"packages": [
|
"packages": [
|
||||||
{ "name": "sass-loader", "version": "^1.0.1" }
|
{ "name": "sass-loader", "version": "^1.0.1" },
|
||||||
|
{ "name": "node-sass", "version": "^3.3.3" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -67,7 +69,8 @@
|
|||||||
"value": "less",
|
"value": "less",
|
||||||
"suffix": ".less",
|
"suffix": ".less",
|
||||||
"packages": [
|
"packages": [
|
||||||
{ "name": "less-loader", "version": "^2.0.0" }
|
{ "name": "less-loader", "version": "^2.0.0" },
|
||||||
|
{ "name": "less", "version": "^2.5.3" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
+15
-1
@@ -139,11 +139,25 @@ let getDestinationPath = (name, type, suffix) => {
|
|||||||
return `${fullPath}.js`;
|
return `${fullPath}.js`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the destinations class name
|
||||||
|
* @param {String} name Name of the file
|
||||||
|
* @param {String} type The type to use (e.g. action, store, ...)
|
||||||
|
* @param {Suffix} suffix The suffix to use for the file (e.g. Store, Actions, ...)
|
||||||
|
* @return {String} The javascript class name to use
|
||||||
|
*/
|
||||||
|
let getDestinationClassName = (name, type, suffix) => {
|
||||||
|
|
||||||
|
let fixedName = getDestinationPath(name, type, suffix);
|
||||||
|
return _.capitalize(fixedName.split('/').pop().split('.js')[0]);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getBaseDir: getBaseDir,
|
getBaseDir: getBaseDir,
|
||||||
getAllSettingsFromComponentName: getAllSettingsFromComponentName,
|
getAllSettingsFromComponentName: getAllSettingsFromComponentName,
|
||||||
getAppName: getAppName,
|
getAppName: getAppName,
|
||||||
getCleanedPathName: getCleanedPathName,
|
getCleanedPathName: getCleanedPathName,
|
||||||
getComponentStyleName: getComponentStyleName,
|
getComponentStyleName: getComponentStyleName,
|
||||||
getDestinationPath: getDestinationPath
|
getDestinationPath: getDestinationPath,
|
||||||
|
getDestinationClassName: getDestinationClassName
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user