fix(schematics): set lib npmScope when publishable

Update the lib's `package.json` name with the right prefix, when generating a lib
with the `publishable` option set to 'true'.

close #677
This commit is contained in:
ben 2018-08-17 11:45:28 -04:00 committed by Victor Savkin
parent 22c9fb5c3b
commit cca6b9f03b
2 changed files with 19 additions and 0 deletions

View File

@ -369,6 +369,14 @@ function updateTsConfig(options: NormalizedSchema): Rule {
]);
}
function updateLibPackageNpmScope(options: NormalizedSchema): Rule {
return updateJsonInTree(`${options.projectRoot}/package.json`, json => {
console.log(json);
json.name = `@${options.prefix}/${options.name}`;
return json;
});
}
export default function(schema: Schema): Rule {
return (host: Tree, context: SchematicContext) => {
const options = normalizeOptions(host, schema);
@ -394,6 +402,7 @@ export default function(schema: Schema): Rule {
}),
updateTsConfig(options),
options.publishable ? updateLibPackageNpmScope(options) : noop(),
options.routing && options.lazy
? addLazyLoadedRouterConfiguration(options)
: noop(),

View File

@ -60,6 +60,16 @@ describe('lib', () => {
expect(packageJson.devDependencies['ng-packagr']).toBeDefined();
});
it("should update npmScope of lib's package.json when publishable", () => {
const tree = schematicRunner.runSchematic(
'lib',
{ name: 'myLib', publishable: true },
appTree
);
const packageJson = readJsonInTree(tree, '/libs/my-lib/package.json');
expect(packageJson.name).toEqual('@proj/my-lib');
});
it('should update angular.json', () => {
const tree = schematicRunner.runSchematic(
'lib',