UNPKG

@ikamva/ngx-tailwindcss

Version:

Tailwind CSS angular schematic

69 lines 3.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateAngularJsonOptions = void 0; const schematics_1 = require("@angular-devkit/schematics"); function updateAngularJsonOptions(options) { return (_host, _context) => { if (_host.exists("angular.json")) { // Read angular.json const angularJSON = _host.read("angular.json").toString("utf-8"); // Check if is an angular cli workspace if (!angularJSON) { throw new schematics_1.SchematicsException("Not an Angular CLI workspace"); } // Get angular workspace const workspace = JSON.parse(angularJSON); // Get Project name const projectName = options.project || workspace.defaultProject; _context.logger.log("info", `✅️ Adding Tailwindcss to ${projectName} project`); // Get project const project = workspace.projects[projectName]; // Get SRC Path const srcPath = project['sourceRoot']; // Store Builder Architect let builderJson = project["architect"]["build"]["builder"]; // Store Builder Options let optionsJson = project["architect"]["build"]["options"]; // Store Builder Configurations let configurationsJson = project["architect"]["build"]["configurations"]; // Add Custom webpack build builderJson = "@angular-builders/custom-webpack:browser"; // add custom webpack config to build optionsJson = Object.assign(Object.assign({}, optionsJson), { customWebpackConfig: { path: "./webpack.config.js" } }); // Store Serve Options let serveOptionsJson = project["architect"]["serve"]["options"]; // Store Serve Configurations let serveConfigurations = project["architect"]["serve"]["configurations"]; let serveJson = "@angular-builders/custom-webpack:dev-server"; serveOptionsJson = Object.assign({}, serveOptionsJson); // Add tailwindcss style const styles = optionsJson['styles']; styles.push(`${srcPath}/tailwind/tailwind.scss`); optionsJson['styles'] = styles; /** * Write to angular.json */ // save build changes project["architect"]["build"] = { builder: builderJson, options: optionsJson, configurations: configurationsJson }; // write serve changes project["architect"]["serve"] = { builder: serveJson, options: serveOptionsJson, configurations: serveConfigurations }; _host.overwrite("angular.json", JSON.stringify(workspace, null, 2)); } else { _context.logger.log("error", "angular.json does not exist"); } return _host; }; } exports.updateAngularJsonOptions = updateAngularJsonOptions; //# sourceMappingURL=updateAngularJsonOptions.js.map