From 939346d8b3d57e64d1341b09f4a37359d58fc31c Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Sat, 22 Aug 2020 01:39:19 +0200 Subject: [PATCH] add tailwind -p init option to generate a postcss file --- __tests__/cli.test.js | 12 ++++++++++++ src/cli/commands/init.js | 13 +++++++++++++ src/constants.js | 6 ++++++ stubs/defaultPostCssConfig.stub.js | 7 +++++++ 4 files changed, 38 insertions(+) create mode 100644 stubs/defaultPostCssConfig.stub.js diff --git a/__tests__/cli.test.js b/__tests__/cli.test.js index d1c7149b4..099c9017c 100644 --- a/__tests__/cli.test.js +++ b/__tests__/cli.test.js @@ -10,6 +10,7 @@ describe('cli', () => { const customConfigPath = path.resolve(__dirname, 'fixtures/custom-config.js') const defaultConfigFixture = utils.readFile(constants.defaultConfigStubFile) const simpleConfigFixture = utils.readFile(constants.simpleConfigStubFile) + const defaultPostCssConfigFixture = utils.readFile(constants.defaultPostCssConfigStubFile) beforeEach(() => { console.log = jest.fn() @@ -25,6 +26,17 @@ describe('cli', () => { }) }) + it('creates a Tailwind config file and a postcss.config.js file', () => { + return runInTempDirectory(() => { + return cli(['init', '-p']).then(() => { + expect(utils.readFile(constants.defaultConfigFile)).toEqual(simpleConfigFixture) + expect(utils.readFile(constants.defaultPostCssConfigFile)).toEqual( + defaultPostCssConfigFixture + ) + }) + }) + }) + it('creates a full Tailwind config file', () => { return runInTempDirectory(() => { return cli(['init', '--full']).then(() => { diff --git a/src/cli/commands/init.js b/src/cli/commands/init.js index f13160d82..8681d8ee2 100644 --- a/src/cli/commands/init.js +++ b/src/cli/commands/init.js @@ -13,10 +13,15 @@ export const options = [ usage: '--full', description: 'Generate complete configuration file.', }, + { + usage: '-p', + description: 'Generate a postcss configuration file.', + }, ] export const optionMap = { full: ['full'], + postcss: ['p'], } /** @@ -43,6 +48,14 @@ export function run(cliParams, cliOptions) { utils.log() utils.log(emoji.yes, 'Created Tailwind config file:', colors.file(simplePath)) + if (cliOptions.postcss) { + const path = utils.getSimplePath(constants.defaultPostCssConfigFile) + utils.exists(constants.defaultPostCssConfigFile) && + utils.die(colors.file(path), 'already exists.') + utils.copyFile(constants.defaultPostCssConfigStubFile, constants.defaultPostCssConfigFile) + utils.log(emoji.yes, 'Created PostCSS config file:', colors.file(path)) + } + utils.footer() resolve() diff --git a/src/constants.js b/src/constants.js index 260a5b66d..f72fcdafa 100644 --- a/src/constants.js +++ b/src/constants.js @@ -2,5 +2,11 @@ import path from 'path' export const cli = 'tailwind' export const defaultConfigFile = './tailwind.config.js' +export const defaultPostCssConfigFile = './postcss.config.js' + export const defaultConfigStubFile = path.resolve(__dirname, '../stubs/defaultConfig.stub.js') export const simpleConfigStubFile = path.resolve(__dirname, '../stubs/simpleConfig.stub.js') +export const defaultPostCssConfigStubFile = path.resolve( + __dirname, + '../stubs/defaultPostCssConfig.stub.js' +) diff --git a/stubs/defaultPostCssConfig.stub.js b/stubs/defaultPostCssConfig.stub.js new file mode 100644 index 000000000..2ce518bbc --- /dev/null +++ b/stubs/defaultPostCssConfig.stub.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} +