Skip to content

Commit

Permalink
feat(angular-cli): prompt if using angular cli 11.2 or above
Browse files Browse the repository at this point in the history
  • Loading branch information
marcjulian committed Feb 11, 2021
1 parent cb01d12 commit fbf4637
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 36 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
src/**/*.js
src/**/*.js.map
src/**/*.d.ts
!src/**/files/**/*.js
!src/**/templates/**/*.js

# IDEs
.idea/
Expand Down
21 changes: 0 additions & 21 deletions angular-workspace/webpack.config.js

This file was deleted.

2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 43 additions & 11 deletions src/ng-add/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
]);
}
};
}

Expand Down Expand Up @@ -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,
Expand Down
5 changes: 5 additions & 0 deletions src/ng-add/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
5 changes: 5 additions & 0 deletions src/ng-add/schema.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
export interface Schema {
/**
* Angular CLI Version above 11.2 with Tailwind CSS support.
*/
angularCliWithTailwindSupport: boolean;

/**
* Autoprefixer version.
*/
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@ module.exports = {
variants: {
extend: {},
},
plugins: [require('@tailwindcss/typography')
],
plugins: [<%= requireTailwindPlugins %>],
};

0 comments on commit fbf4637

Please sign in to comment.