diff --git a/.gitignore b/.gitignore index 38ee98c..8fabc0b 100755 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ src/**/*.js src/**/*.js.map src/**/*.d.ts -!src/**/files/**/*.js +!src/**/templates/**/*.js # IDEs .idea/ diff --git a/angular-workspace/webpack.config.js b/angular-workspace/webpack.config.js deleted file mode 100644 index ac24aa7..0000000 --- a/angular-workspace/webpack.config.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - module: { - rules: [ - { - test: /\.scss$/, - loader: 'postcss-loader', - options: { - postcssOptions: { - ident: 'postcss', - syntax: 'postcss-scss', - plugins: [ - require('postcss-import'), - require('tailwindcss'), - require('autoprefixer'), - ], - }, - }, - }, - ], - }, -}; diff --git a/package-lock.json b/package-lock.json index b07e57d..6f05172 100755 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ngx-tailwind", - "version": "1.3.0", + "version": "2.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/ng-add/index.ts b/src/ng-add/index.ts index 07e43eb..2835438 100755 --- a/src/ng-add/index.ts +++ b/src/ng-add/index.ts @@ -61,15 +61,26 @@ export function ngAdd(_options: Schema): Rule { (plugin) => `require('${plugin}')\n`, ); - return chain([ - addDependencies(_options), - addTailwindPlugins(tailwindPluginDependencies), - addNpmScripts(_options), - updateStyles(_options, workspace), - generateConfigs(_options, requireTailwindPlugins), - updateAngularJSON(_options, workspace), - install(), - ]); + if(_options.angularCliWithTailwindSupport) { + return chain([ + addDependencies(_options), + addTailwindPlugins(tailwindPluginDependencies), + addNpmScripts(_options), + updateStyles(_options, workspace), + generateTailwindConfig(_options, requireTailwindPlugins), + install(), + ]); + } else { + return chain([ + addDependencies(_options), + addTailwindPlugins(tailwindPluginDependencies), + addNpmScripts(_options), + updateStyles(_options, workspace), + generateTailwindAndWebpackConfig(_options, requireTailwindPlugins), + updateAngularJSON(_options, workspace), + install(), + ]); + } }; } @@ -173,12 +184,33 @@ function getTailwindImports(): string { * * @param options */ -function generateConfigs( +function generateTailwindConfig( + options: Schema, + requireTailwindPlugins: string[], +): Rule { + return async (_host: Tree) => { + const sourceTemplates = url(`./templates/tailwind`); + const sourceParametrizedTemplates = apply(sourceTemplates, [ + template({ + ...options, + requireTailwindPlugins: requireTailwindPlugins, + ...strings, + }), + ]); + return mergeWith(sourceParametrizedTemplates); + }; +} +/** + * Generate webpack and tailwind config. + * + * @param options + */ +function generateTailwindAndWebpackConfig( options: Schema, requireTailwindPlugins: string[], ): Rule { return async (_host: Tree) => { - const sourceTemplates = url(`./files`); + const sourceTemplates = url(`./templates/configs`); const sourceParametrizedTemplates = apply(sourceTemplates, [ template({ ...options, diff --git a/src/ng-add/schema.json b/src/ng-add/schema.json index 12e696f..f8a83d8 100755 --- a/src/ng-add/schema.json +++ b/src/ng-add/schema.json @@ -10,6 +10,11 @@ "description": "The autoprefixer version to be installed.", "default": "^10.2.3" }, + "angularCliWithTailwindSupport": { + "description": "Angular CLI Version above 11.2 with Tailwind CSS support.", + "type": "boolean", + "x-prompt": "Are you using Angular CLI in version 11.2 or above?" + }, "cssFormat": { "description": "The file extension or preprocessor to use for style files.", "type": "string", diff --git a/src/ng-add/schema.ts b/src/ng-add/schema.ts index 524ca32..6f6949b 100644 --- a/src/ng-add/schema.ts +++ b/src/ng-add/schema.ts @@ -1,4 +1,9 @@ export interface Schema { + /** + * Angular CLI Version above 11.2 with Tailwind CSS support. + */ + angularCliWithTailwindSupport: boolean; + /** * Autoprefixer version. */ diff --git a/src/ng-add/files/tailwind.config.js b/src/ng-add/templates/configs/tailwind.config.js similarity index 100% rename from src/ng-add/files/tailwind.config.js rename to src/ng-add/templates/configs/tailwind.config.js diff --git a/src/ng-add/files/webpack.config.js b/src/ng-add/templates/configs/webpack.config.js similarity index 100% rename from src/ng-add/files/webpack.config.js rename to src/ng-add/templates/configs/webpack.config.js diff --git a/angular-workspace/tailwind.config.js b/src/ng-add/templates/tailwind/tailwind.config.js similarity index 77% rename from angular-workspace/tailwind.config.js rename to src/ng-add/templates/tailwind/tailwind.config.js index c5fd801..071fa1f 100644 --- a/angular-workspace/tailwind.config.js +++ b/src/ng-add/templates/tailwind/tailwind.config.js @@ -7,6 +7,5 @@ module.exports = { variants: { extend: {}, }, - plugins: [require('@tailwindcss/typography') -], + plugins: [<%= requireTailwindPlugins %>], };