mirror of
https://github.com/react-webpack-generators/generator-react-webpack.git
synced 2025-12-08 18:01:59 +00:00
Merge pull request #62 from ColCh/feature/Feature-aliases
Provide and use aliases to components dir and styles dir
This commit is contained in:
commit
fbc7776a1c
@ -28,7 +28,11 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: ['', '.js']
|
extensions: ['', '.js'],
|
||||||
|
alias: {
|
||||||
|
'styles': './src/styles',
|
||||||
|
'components': './src/scripts/components/'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
preLoaders: [{
|
preLoaders: [{
|
||||||
|
|||||||
@ -34,6 +34,10 @@ module.exports = {
|
|||||||
|
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: ['', '.js']
|
extensions: ['', '.js']
|
||||||
|
alias: {
|
||||||
|
'styles': './src/styles',
|
||||||
|
'components': './src/scripts/components/'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
module: {
|
module: {
|
||||||
|
|||||||
@ -42,6 +42,12 @@ module.exports = function (config) {
|
|||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
loader: 'style-loader!css-loader'
|
loader: 'style-loader!css-loader'
|
||||||
}]
|
}]
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'styles': './src/styles',
|
||||||
|
'components': './src/scripts/components/'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
webpackServer: {
|
webpackServer: {
|
||||||
|
|||||||
@ -4,8 +4,8 @@ var React = require('react/addons');
|
|||||||
var ReactTransitionGroup = React.addons.TransitionGroup;
|
var ReactTransitionGroup = React.addons.TransitionGroup;
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
require('../../styles/normalize.css');
|
require('styles/normalize.css');
|
||||||
require('../../styles/main.css');
|
require('styles/main.css');
|
||||||
|
|
||||||
var imageURL = require('../../images/yeoman.png');
|
var imageURL = require('../../images/yeoman.png');
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
var React = require('react/addons');
|
var React = require('react/addons');
|
||||||
|
|
||||||
<% if (stylesLanguage === 'css') { %>require('../../styles/<%= classedFileName %>.css');<% } %><%
|
<% if (stylesLanguage === 'css') { %>require('styles/<%= classedFileName %>.css');<% } %><%
|
||||||
if (stylesLanguage === 'sass') { %>require('../../styles/<%= classedFileName %>.sass');<% } %><%
|
if (stylesLanguage === 'sass') { %>require('styles/<%= classedFileName %>.sass');<% } %><%
|
||||||
if (stylesLanguage === 'scss') { %>require('../../styles/<%= classedFileName %>.scss');<% } %><%
|
if (stylesLanguage === 'scss') { %>require('styles/<%= classedFileName %>.scss');<% } %><%
|
||||||
if (stylesLanguage === 'less') { %>require('../../styles/<%= classedFileName %>.less');<% } %><%
|
if (stylesLanguage === 'less') { %>require('styles/<%= classedFileName %>.less');<% } %><%
|
||||||
if (stylesLanguage === 'stylus') { %>require('../../styles/<%= classedFileName %>.styl');<% } %>
|
if (stylesLanguage === 'stylus') { %>require('styles/<%= classedFileName %>.styl');<% } %>
|
||||||
|
|
||||||
var <%= classedName %> = React.createClass({
|
var <%= classedName %> = React.createClass({
|
||||||
render: function () {
|
render: function () {
|
||||||
|
|||||||
@ -9,7 +9,7 @@ describe('<%= classedName %>', function () {
|
|||||||
container.id = 'content';
|
container.id = 'content';
|
||||||
document.body.appendChild(container);
|
document.body.appendChild(container);
|
||||||
|
|
||||||
<%= scriptAppName %> = require('../../../src/scripts/components/<%= scriptAppName %>.js');
|
<%= scriptAppName %> = require('components/<%= scriptAppName %>.js');
|
||||||
component = React.createElement(<%= scriptAppName %>);
|
component = React.createElement(<%= scriptAppName %>);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@ describe('<%= classedName %>', function () {
|
|||||||
var <%= classedName %>, component;
|
var <%= classedName %>, component;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
<%= classedName %> = require('../../../src/scripts/components/<%= classedFileName %>.js');
|
<%= classedName %> = require('components/<%= classedFileName %>.js');
|
||||||
component = React.createElement(<%= classedName %>);
|
component = React.createElement(<%= classedName %>);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ describe('main', function () {
|
|||||||
var main, component;
|
var main, component;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
main = require('../../../src/scripts/components/main.jsx');
|
main = require('components/main.jsx');
|
||||||
component = main();
|
component = main();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -109,6 +109,22 @@ describe('react-webpack generator', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should generate JS config with aliases', function(done) {
|
||||||
|
react.run({}, function() {
|
||||||
|
assert.fileContent([
|
||||||
|
// style aliases
|
||||||
|
['webpack.config.js', /resolve[\S\s]+alias[\S\s]+styles/m],
|
||||||
|
['karma.conf.js', /resolve[\S\s]+alias[\S\s]+styles/m],
|
||||||
|
['webpack.dist.config.js', /resolve[\S\s]+alias[\S\s]+styles/m],
|
||||||
|
// script/components aliases
|
||||||
|
['webpack.config.js', /resolve[\S\s]+alias[\S\s]+components/m],
|
||||||
|
['karma.conf.js', /resolve[\S\s]+alias[\S\s]+components/m],
|
||||||
|
['webpack.dist.config.js', /resolve[\S\s]+alias[\S\s]+components/m]
|
||||||
|
]);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Generator', function () {
|
describe('Generator', function () {
|
||||||
@ -156,11 +172,10 @@ describe('react-webpack generator', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('Subgenerators', function() {
|
describe('Subgenerators', function() {
|
||||||
var generatorTest = function(generatorType, specType, targetDirectory, scriptNameFn, specNameFn, suffix, done) {
|
var generatorTest = function(name, generatorType, specType, targetDirectory, scriptNameFn, specNameFn, suffix, done) {
|
||||||
|
|
||||||
var name = 'Foo';
|
|
||||||
var deps = [path.join('../..', generatorType)];
|
var deps = [path.join('../..', generatorType)];
|
||||||
genOptions.appPath += '/scripts'
|
genOptions.appPath = 'src/scripts'
|
||||||
|
|
||||||
var reactGenerator = helpers.createGenerator('react-webpack:' + generatorType, deps, [name], genOptions);
|
var reactGenerator = helpers.createGenerator('react-webpack:' + generatorType, deps, [name], genOptions);
|
||||||
|
|
||||||
@ -169,6 +184,9 @@ describe('react-webpack generator', function() {
|
|||||||
helpers.assertFileContent([
|
helpers.assertFileContent([
|
||||||
|
|
||||||
[path.join('src/scripts', targetDirectory, name + '.js'), new RegExp('var ' + scriptNameFn(name) + suffix, 'g')],
|
[path.join('src/scripts', targetDirectory, name + '.js'), new RegExp('var ' + scriptNameFn(name) + suffix, 'g')],
|
||||||
|
[path.join('src/scripts', targetDirectory, name + '.js'), new RegExp('require\\(\'styles\\/' + name + suffix + '\\.[^\']+' + '\'\\)', 'g')],
|
||||||
|
[path.join('test/spec', targetDirectory, 'TempTestApp' + '.js'), new RegExp('require\\(\'components\\/' + 'TempTestApp' + suffix + '\\.[^\']+' + '\'\\)', 'g')],
|
||||||
|
[path.join('test/spec', targetDirectory, name + '.js'), new RegExp('require\\(\'components\\/' + name + suffix + '\\.[^\']+' + '\'\\)', 'g')],
|
||||||
[path.join('test/spec', targetDirectory, name + '.js'), new RegExp('describe\\(\'' + specNameFn(name) + suffix + '\'', 'g')]
|
[path.join('test/spec', targetDirectory, name + '.js'), new RegExp('describe\\(\'' + specNameFn(name) + suffix + '\'', 'g')]
|
||||||
|
|
||||||
]);
|
]);
|
||||||
@ -179,7 +197,14 @@ describe('react-webpack generator', function() {
|
|||||||
|
|
||||||
it('should generate a new component', function(done) {
|
it('should generate a new component', function(done) {
|
||||||
react.run({}, function() {
|
react.run({}, function() {
|
||||||
generatorTest('component', 'component', 'components', _.capitalize, _.capitalize, '', done);
|
generatorTest('Foo', 'component', 'component', 'components', _.capitalize, _.capitalize, '', done);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should generate a subcomponent', function(done) {
|
||||||
|
react.run({}, function() {
|
||||||
|
var subComponentNameFn = function () { return 'Bar'; };
|
||||||
|
generatorTest('Foo/Bar', 'component', 'component', 'components', subComponentNameFn, subComponentNameFn, '', done);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user