mirror of
https://github.com/react-webpack-generators/generator-react-webpack.git
synced 2025-12-08 18:01:59 +00:00
Finish Feature-stylelang-selection
This commit is contained in:
commit
0601753a24
22
app/index.js
22
app/index.js
@ -32,7 +32,10 @@ var ReactWebpackGenerator = module.exports = function ReactWebpackGenerator(args
|
||||
this.installDependencies({ skipInstall: options['skip-install'] });
|
||||
});
|
||||
|
||||
|
||||
this.pkg = JSON.parse(this.readFileAsString(path.join(__dirname, '../package.json')));
|
||||
|
||||
this.config.save();
|
||||
};
|
||||
|
||||
util.inherits(ReactWebpackGenerator, yeoman.generators.Base);
|
||||
@ -60,6 +63,25 @@ ReactWebpackGenerator.prototype.askForReactRouter = function () {
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
ReactWebpackGenerator.prototype.askForStylesLanguage = function () {
|
||||
var done = this.async();
|
||||
this.prompt({
|
||||
type : 'list',
|
||||
name : 'stylesLanguage',
|
||||
message : 'Which styles language you want to use?',
|
||||
choices: [
|
||||
{name: 'CSS', value: 'css'},
|
||||
{name: 'SASS', value: 'sass'},
|
||||
{name: 'LESS', value: 'less'},
|
||||
{name: 'Stylus', value: 'stylus'}
|
||||
],
|
||||
default : 'css'
|
||||
}, function (props) {
|
||||
this.config.set('styles-language', props.stylesLanguage);
|
||||
done();
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
ReactWebpackGenerator.prototype.readIndex = function readIndex() {
|
||||
this.indexFile = this.engine(this.read('../../templates/common/index.html'), this);
|
||||
};
|
||||
|
||||
@ -38,6 +38,18 @@ var Generator = module.exports = function Generator() {
|
||||
|
||||
this.stylesSuffix = '.css';
|
||||
|
||||
switch(this.config.get('styles-language')) {
|
||||
case 'sass':
|
||||
this.stylesSuffix = '.sass';
|
||||
break;
|
||||
case 'less':
|
||||
this.stylesSuffix = '.less';
|
||||
break;
|
||||
case 'stylus':
|
||||
this.stylesSuffix = '.styl';
|
||||
break;
|
||||
}
|
||||
|
||||
this.sourceRoot(path.join(__dirname, sourceRoot));
|
||||
};
|
||||
|
||||
|
||||
3
templates/styles/Component.less
Normal file
3
templates/styles/Component.less
Normal file
@ -0,0 +1,3 @@
|
||||
.<%= classedName %>{
|
||||
border: 1px dashed #f00;
|
||||
}
|
||||
2
templates/styles/Component.sass
Normal file
2
templates/styles/Component.sass
Normal file
@ -0,0 +1,2 @@
|
||||
.<%= classedName %>
|
||||
border: 1px dashed #f00
|
||||
2
templates/styles/Component.styl
Normal file
2
templates/styles/Component.styl
Normal file
@ -0,0 +1,2 @@
|
||||
.<%= classedName %>
|
||||
border 1px dashed #f00
|
||||
@ -48,6 +48,7 @@ describe('react-webpack generator', function() {
|
||||
it('should generate dotfiles', function(done) {
|
||||
react.run({}, function() {
|
||||
helpers.assertFile([].concat(expected, [
|
||||
'.yo-rc.json',
|
||||
'.editorconfig',
|
||||
'.gitignore',
|
||||
'.jshintrc'
|
||||
@ -110,6 +111,46 @@ describe('react-webpack generator', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('Generator', function () {
|
||||
|
||||
it('should contain info about used style lang', function (done) {
|
||||
react.run({}, function() {
|
||||
assert.ok(react.config.get('styles-language'));
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('by default should use css style lang', function (done) {
|
||||
react.run({}, function() {
|
||||
assert.equal(react.config.get('styles-language'), 'css');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
var assertStyle = function (lang, done) {
|
||||
helpers.mockPrompt(react, {
|
||||
stylesLanguage: lang
|
||||
});
|
||||
react.run({}, function() {
|
||||
assert.equal(react.config.get('styles-language'), lang);
|
||||
done();
|
||||
});
|
||||
};
|
||||
|
||||
it('should use sass style lang', function (done) {
|
||||
assertStyle('sass', done);
|
||||
});
|
||||
|
||||
it('should use less style lang', function (done) {
|
||||
assertStyle('less', done);
|
||||
});
|
||||
|
||||
it('should use stylus style lang', function (done) {
|
||||
assertStyle('stylus', done);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Subgenerators', function() {
|
||||
var generatorTest = function(generatorType, specType, targetDirectory, scriptNameFn, specNameFn, suffix, done) {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user