Skip to content

Commit cece8d0

Browse files
committed
Updated functionality related to PostCSS - #307
- bumped postcss and postcss-loader versions - removed deprecated custom logic related to setting up PostCSS - updated tests As communicated in #307 and on the related PR from @stylesuxx on the template repo we can use PostCSS` more recent config file feature instead of modifying our config. If users prompt the PostCSS question with yes, deps for postcss and postcss-loader are added to their package.json. The updated tests check that - postcss and postcss-loader deps are added on PostCSS yes - postcss and postcss-loader deps are not added on PostCSS no - postcss.config.js is copied to the project root
1 parent 9c68254 commit cece8d0

File tree

4 files changed

+36
-150
lines changed

4 files changed

+36
-150
lines changed

generators/app/index.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,6 @@ class AppGenerator extends Generators.Base {
154154

155155
install() {
156156

157-
// Currently buggy!
158-
if(this.postcss) {
159-
const postcss = require('./postcss');
160-
postcss.write(path.join(this.destinationRoot(), 'conf/webpack/Base.js'));
161-
}
162-
163157
if(!this.options['skip-install']) {
164158
this.installDependencies({ bower: false });
165159
}

generators/app/postcss.js

Lines changed: 0 additions & 99 deletions
This file was deleted.

test/generators/app/indexTest.js

Lines changed: 34 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,27 @@ describe('react-webpack:app without cssmodules support', () => {
163163
});
164164
});
165165

166+
describe('react-webpack:app without PostCSS support', () => {
167+
168+
let prompts = {};
169+
for(let p of defaultPrompts) {
170+
prompts[p.name] = p.default;
171+
}
172+
prompts.postcss = false;
173+
174+
before(() => {
175+
return beforeLoad(prompts);
176+
});
177+
178+
describe('#createFiles', () => {
179+
180+
it('should not add postcss and postcss-loader deps', () => {
181+
assert.noFileContent('package.json', 'postcss');
182+
assert.noFileContent('package.json', 'postcss-loader');
183+
});
184+
});
185+
});
186+
166187
describe('react-webpack:app with PostCSS support', () => {
167188

168189
let prompts = {};
@@ -203,7 +224,14 @@ describe('react-webpack:app with PostCSS support', () => {
203224
'.editorconfig',
204225
'.eslintrc',
205226
'.gitignore',
206-
'.yo-rc.json'
227+
'.yo-rc.json',
228+
]);
229+
});
230+
231+
it('should generate postcss.config.js', () => {
232+
233+
assert.file([
234+
'postcss.config.js'
207235
]);
208236
});
209237

@@ -225,48 +253,6 @@ describe('react-webpack:app with PostCSS support', () => {
225253
]);
226254
});
227255

228-
it('should insert the postcss loader into the style pipes', () => {
229-
assert.fileContent('conf/webpack/Base.js', `{
230-
loader: 'css-loader',
231-
query: cssModulesQuery
232-
},
233-
{ loader: 'postcss-loader' }`);
234-
assert.fileContent('conf/webpack/Base.js', `{ loader: 'css-loader' },
235-
{ loader: 'postcss-loader' }`);
236-
assert.fileContent('conf/webpack/Base.js', `{
237-
loader: 'css-loader',
238-
query: cssModulesQuery
239-
},
240-
{ loader: 'postcss-loader' },
241-
{ loader: 'sass-loader' }`);
242-
assert.fileContent('conf/webpack/Base.js', `{ loader: 'css-loader' },
243-
{ loader: 'postcss-loader' },
244-
{ loader: 'sass-loader' }`);
245-
assert.fileContent('conf/webpack/Base.js', `{
246-
loader: 'css-loader',
247-
query: cssModulesQuery
248-
},
249-
{ loader: 'postcss-loader' },
250-
{ loader: 'less-loader' }`);
251-
assert.fileContent('conf/webpack/Base.js', `{ loader: 'css-loader' },
252-
{ loader: 'postcss-loader' },
253-
{ loader: 'less-loader' }`);
254-
assert.fileContent('conf/webpack/Base.js', `{
255-
loader: 'css-loader',
256-
query: cssModulesQuery
257-
},
258-
{ loader: 'postcss-loader' },
259-
{ loader: 'stylus-loader' }`);
260-
assert.fileContent('conf/webpack/Base.js', `{ loader: 'css-loader' },
261-
{ loader: 'postcss-loader' },
262-
{ loader: 'stylus-loader' }`);
263-
});
264-
265-
it('should append the postcss function to the base config', () => {
266-
267-
assert.fileContent('conf/webpack/Base.js', 'postcss: function () {');
268-
});
269-
270256
it('should generate required source files', () => {
271257

272258
assert.file([
@@ -282,6 +268,11 @@ describe('react-webpack:app with PostCSS support', () => {
282268
]);
283269
});
284270

271+
it('should add postcss and postcss-loader deps', () => {
272+
assert.fileContent('package.json', 'postcss');
273+
assert.fileContent('package.json', 'postcss-loader');
274+
});
275+
285276
it('should generate test configuration and basic tests', () => {
286277

287278
assert.file([

utils/configopts.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
"name": "postcss",
4646
"value": "postcss",
4747
"packages": [
48-
{ "name": "postcss", "version": "^5.0.21" },
49-
{ "name": "postcss-loader", "version": "^0.9.1" }
48+
{ "name": "postcss", "version": "^5.2.6" },
49+
{ "name": "postcss-loader", "version": "^1.2.1" }
5050
]
5151
}
5252
]

0 commit comments

Comments
 (0)