diff --git a/CHANGELOG.md b/CHANGELOG.md index e554dd8ce71e..ea324fb2787c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -927,7 +927,7 @@ No release notes - Everything! [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v1.8.10...HEAD -[1.8.9]: https://github.com/tailwindlabs/tailwindcss/compare/v1.8.9...v1.8.10 +[1.8.10]: https://github.com/tailwindlabs/tailwindcss/compare/v1.8.9...v1.8.10 [1.8.9]: https://github.com/tailwindlabs/tailwindcss/compare/v1.8.8...v1.8.9 [1.8.8]: https://github.com/tailwindlabs/tailwindcss/compare/v1.8.7...v1.8.8 [1.8.7]: https://github.com/tailwindlabs/tailwindcss/compare/v1.8.6...v1.8.7 diff --git a/__tests__/applyComplexClasses.test.js b/__tests__/applyComplexClasses.test.js index fb6c114da1a8..c6a15d0c6a05 100644 --- a/__tests__/applyComplexClasses.test.js +++ b/__tests__/applyComplexClasses.test.js @@ -5,7 +5,7 @@ import tailwind from '../src/index' function run(input, config = {}) { return postcss([ - tailwind({ experimental: { applyComplexClasses: true }, ...config }), + tailwind({ ...config, experimental: { applyComplexClasses: true } }), ]).process(input, { from: undefined }) } diff --git a/__tests__/cli.test.js b/__tests__/cli.test.js index 099c9017c9d4..daadc15fcb0b 100644 --- a/__tests__/cli.test.js +++ b/__tests__/cli.test.js @@ -4,12 +4,11 @@ import cli from '../src/cli/main' import * as constants from '../src/constants' import * as utils from '../src/cli/utils' import runInTempDirectory from '../jest/runInTempDirectory' +import featureFlags from '../src/featureFlags' describe('cli', () => { const inputCssPath = path.resolve(__dirname, 'fixtures/tailwind-input.css') 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(() => { @@ -21,7 +20,7 @@ describe('cli', () => { it('creates a Tailwind config file', () => { return runInTempDirectory(() => { return cli(['init']).then(() => { - expect(utils.readFile(constants.defaultConfigFile)).toEqual(simpleConfigFixture) + expect(utils.exists(constants.defaultConfigFile)).toEqual(true) }) }) }) @@ -29,7 +28,7 @@ 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.exists(constants.defaultConfigFile)).toEqual(true) expect(utils.readFile(constants.defaultPostCssConfigFile)).toEqual( defaultPostCssConfigFixture ) @@ -40,7 +39,7 @@ describe('cli', () => { it('creates a full Tailwind config file', () => { return runInTempDirectory(() => { return cli(['init', '--full']).then(() => { - expect(utils.readFile(constants.defaultConfigFile)).toEqual(defaultConfigFixture) + expect(utils.exists(constants.defaultConfigFile)).toEqual(true) }) }) }) @@ -94,5 +93,25 @@ describe('cli', () => { expect(process.stdout.write.mock.calls[0][0]).not.toContain('-ms-input-placeholder') }) }) + + it('creates a Tailwind config file with future flags', () => { + return runInTempDirectory(() => { + return cli(['init']).then(() => { + featureFlags.future.forEach(flag => { + expect(utils.readFile(constants.defaultConfigFile)).toContain(`${flag}: true`) + }) + }) + }) + }) + + it('creates a Tailwind config file with experimental flags', () => { + return runInTempDirectory(() => { + return cli(['init']).then(() => { + featureFlags.experimental.forEach(flag => { + expect(utils.readFile(constants.defaultConfigFile)).toContain(`${flag}: true`) + }) + }) + }) + }) }) }) diff --git a/src/cli/commands/init.js b/src/cli/commands/init.js index e85c7c6947f6..c7a874b25b32 100644 --- a/src/cli/commands/init.js +++ b/src/cli/commands/init.js @@ -35,15 +35,30 @@ export function run(cliParams, cliOptions) { return new Promise(resolve => { utils.header() - const full = cliOptions.full const file = cliParams[0] || constants.defaultConfigFile const simplePath = utils.getSimplePath(file) utils.exists(file) && utils.die(colors.file(simplePath), 'already exists.') - const stubFile = full ? constants.defaultConfigStubFile : constants.simpleConfigStubFile + const stubFile = cliOptions.full + ? constants.defaultConfigStubFile + : constants.simpleConfigStubFile - utils.copyFile(stubFile, file) + const config = require(stubFile) + const { future, experimental } = require('../../featureFlags').default + + future.forEach(flag => { + config.future[`// ${flag}`] = true + }) + + experimental.forEach(flag => { + config.experimental[`// ${flag}`] = true + }) + + utils.writeFile( + file, + `module.exports = ${JSON.stringify(config, null, 2).replace(/"([^-_\d"]+)":/g, '$1:')}\n` + ) utils.log() utils.log(emoji.yes, 'Created Tailwind config file:', colors.file(simplePath)) diff --git a/stubs/defaultConfig.stub.js b/stubs/defaultConfig.stub.js index 6ce6e2066d45..173f2468ed78 100644 --- a/stubs/defaultConfig.stub.js +++ b/stubs/defaultConfig.stub.js @@ -1,8 +1,6 @@ module.exports = { - future: { - // removeDeprecatedGapUtilities: true, - // purgeLayersByDefault: true, - }, + future: {}, + experimental: {}, purge: [], target: 'relaxed', prefix: '', diff --git a/stubs/simpleConfig.stub.js b/stubs/simpleConfig.stub.js index c0826ce5dd2c..81ff5879338b 100644 --- a/stubs/simpleConfig.stub.js +++ b/stubs/simpleConfig.stub.js @@ -1,8 +1,6 @@ module.exports = { - future: { - // removeDeprecatedGapUtilities: true, - // purgeLayersByDefault: true, - }, + future: {}, + experimental: {}, purge: [], theme: { extend: {},