Skip to content

Commit 61dd440

Browse files
authored
chore(packages): move packages into their own scope. (angular#3413)
This will facilitate management of packages internally.
1 parent 8b0ad7a commit 61dd440

40 files changed

+68
-233
lines changed

lib/packages.js

+31-17
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,40 @@
11
'use strict';
22

33
const fs = require('fs');
4+
const glob = require('glob');
45
const path = require('path');
56

67
const packageRoot = path.join(__dirname, '../packages');
78

89
// All the supported packages. Go through the packages directory and create a map of
910
// name => fullPath.
10-
const packages = fs.readdirSync(packageRoot)
11-
.map(pkgName => ({ name: pkgName, root: path.join(packageRoot, pkgName) }))
12-
.filter(pkg => fs.statSync(pkg.root).isDirectory())
13-
.reduce((packages, pkg) => {
14-
let pkgJson = JSON.parse(fs.readFileSync(path.join(pkg.root, 'package.json'), 'utf8'));
15-
let name = pkgJson['name'];
16-
packages[name] = {
17-
dist: path.join(__dirname, '../dist', pkg.name),
18-
packageJson: path.join(pkg.root, 'package.json'),
19-
root: pkg.root,
20-
relative: path.relative(path.dirname(__dirname), pkg.root),
21-
main: path.resolve(pkg.root, 'src/index.ts')
22-
};
23-
return packages;
24-
}, {});
25-
26-
module.exports = packages;
11+
const packages =
12+
glob.sync(path.join(packageRoot, '**/package.json'))
13+
.filter(p => !p.match(/blueprints/))
14+
.map(pkgPath => path.relative(packageRoot, path.dirname(pkgPath)))
15+
.map(pkgName => {
16+
return { name: pkgName, root: path.join(packageRoot, pkgName) };
17+
})
18+
.reduce((packages, pkg) => {
19+
let pkgJson = JSON.parse(fs.readFileSync(path.join(pkg.root, 'package.json'), 'utf8'));
20+
let name = pkgJson['name'];
21+
22+
packages[name] = {
23+
dist: path.join(__dirname, '../dist', pkg.name),
24+
packageJson: path.join(pkg.root, 'package.json'),
25+
root: pkg.root,
26+
relative: path.relative(path.dirname(__dirname), pkg.root),
27+
main: path.resolve(pkg.root, 'src/index.ts')
28+
};
29+
return packages;
30+
}, {});
31+
32+
33+
module.exports = packages;
34+
35+
36+
// If we run this from the command line, just output the list of modules neatly formatted.
37+
if (require.main === module) {
38+
// eslint-disable-next-line no-console
39+
console.log(JSON.stringify(packages, null, 2));
40+
}

packages/ast-tools/tsconfig.json renamed to packages/@angular-cli/ast-tools/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"moduleResolution": "node",
88
"noEmitOnError": true,
99
"noImplicitAny": true,
10-
"outDir": "../../dist/ast-tools",
10+
"outDir": "../../../dist/@angular-cli/ast-tools",
1111
"rootDir": ".",
1212
"sourceMap": true,
1313
"sourceRoot": "/",

packages/base-href-webpack/tsconfig.json renamed to packages/@angular-cli/base-href-webpack/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"moduleResolution": "node",
88
"noEmitOnError": true,
99
"noImplicitAny": true,
10-
"outDir": "../../dist/base-href-webpack",
10+
"outDir": "../../../dist/@angular-cli/base-href-webpack",
1111
"rootDir": ".",
1212
"sourceMap": true,
1313
"sourceRoot": "/",
File renamed without changes.

packages/webpack/tsconfig.json renamed to packages/@ngtools/webpack/tsconfig.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
"moduleResolution": "node",
88
"noEmitOnError": true,
99
"noImplicitAny": true,
10-
"outDir": "../../dist/webpack",
10+
"outDir": "../../../dist/@ngtools/webpack",
1111
"rootDir": ".",
1212
"lib": ["es2015", "es6", "dom"],
1313
"target": "es5",
1414
"sourceMap": true,
1515
"sourceRoot": "/",
16-
"baseUrl": ".",
16+
"baseUrl": "./",
1717
"paths": {
18-
"@angular-cli/ast-tools": [ "../../dist/ast-tools/src" ]
18+
"@angular-cli/ast-tools": [ "../../../dist/ast-tools/src" ]
1919
},
2020
"typeRoots": [
2121
"../../node_modules/@types"

packages/angular-cli/models/find-lazy-modules.ts

-77
This file was deleted.

packages/angular-cli/tsconfig.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
],
2121
"baseUrl": "",
2222
"paths": {
23-
"@angular-cli/ast-tools": [ "../../dist/ast-tools/src" ],
24-
"@angular-cli/base-href-webpack": [ "../../dist/base-href-webpack/src" ],
25-
"@ngtools/webpack": [ "../../dist/webpack/src" ]
23+
"@angular-cli/ast-tools": [ "../../dist/@angular-cli/ast-tools/src" ],
24+
"@angular-cli/base-href-webpack": [ "../../dist/@angular-cli/base-href-webpack/src" ],
25+
"@ngtools/webpack": [ "../../dist/@ngtools/webpack/src" ]
2626
}
2727
},
2828
"include": [

tests/acceptance/find-lazy-module.spec.ts

-50
This file was deleted.

tests/e2e/assets/webpack/test-app-weird/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"@angular/platform-browser-dynamic": "2.2.1",
1212
"@angular/platform-server": "2.2.1",
1313
"@angular/router": "3.2.1",
14+
"@ngtools/webpack": "0.0.0",
1415
"core-js": "^2.4.1",
1516
"rxjs": "^5.0.0-beta.12",
1617
"zone.js": "^0.6.21"

tests/e2e/assets/webpack/test-app/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"@angular/platform-browser-dynamic": "2.2.3",
1212
"@angular/platform-server": "2.2.3",
1313
"@angular/router": "3.2.3",
14+
"@ngtools/webpack": "0.0.0",
1415
"core-js": "^2.4.1",
1516
"rxjs": "^5.0.0-beta.12",
1617
"zone.js": "^0.6.21"

tests/e2e/tests/packages/webpack/test.ts

+3-11
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import {copyAssets} from '../../../utils/assets';
2-
import {exec, silentNpm} from '../../../utils/process';
3-
import {updateJsonFile} from '../../../utils/project';
4-
import {join} from 'path';
1+
import {createProjectFromAsset} from '../../../utils/assets';
2+
import {exec} from '../../../utils/process';
53
import {expectFileSizeToBeUnder} from '../../../utils/fs';
64

75

@@ -12,13 +10,7 @@ export default function(skipCleaning: () => void) {
1210
}
1311

1412
return Promise.resolve()
15-
.then(() => copyAssets('webpack/test-app'))
16-
.then(dir => process.chdir(dir))
17-
.then(() => updateJsonFile('package.json', json => {
18-
const dist = '../../../../../dist/';
19-
json['dependencies']['@ngtools/webpack'] = join(__dirname, dist, 'webpack');
20-
}))
21-
.then(() => silentNpm('install'))
13+
.then(() => createProjectFromAsset('webpack/test-app'))
2214
.then(() => exec('node_modules/.bin/webpack', '-p'))
2315
.then(() => expectFileSizeToBeUnder('dist/app.main.js', 400000))
2416
.then(() => expectFileSizeToBeUnder('dist/0.app.main.js', 40000))

tests/e2e/tests/packages/webpack/weird.ts

+3-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import {copyAssets} from '../../../utils/assets';
2-
import {exec, silentNpm} from '../../../utils/process';
1+
import {createProjectFromAsset} from '../../../utils/assets';
2+
import {exec} from '../../../utils/process';
33
import {updateJsonFile} from '../../../utils/project';
4-
import {join} from 'path';
54
import {expectFileSizeToBeUnder, expectFileToExist} from '../../../utils/fs';
65
import {expectToFail} from '../../../utils/utils';
76

@@ -13,13 +12,7 @@ export default function(skipCleaning: () => void) {
1312
}
1413

1514
return Promise.resolve()
16-
.then(() => copyAssets('webpack/test-app-weird'))
17-
.then(dir => process.chdir(dir))
18-
.then(() => updateJsonFile('package.json', json => {
19-
const dist = '../../../../../dist/';
20-
json['dependencies']['@ngtools/webpack'] = join(__dirname, dist, 'webpack');
21-
}))
22-
.then(() => silentNpm('install'))
15+
.then(() => createProjectFromAsset('webpack/test-app-weird'))
2316
.then(() => exec('node_modules/.bin/webpack', '-p'))
2417
.then(() => expectFileToExist('dist/app.main.js'))
2518
.then(() => expectFileToExist('dist/0.app.main.js'))

tests/e2e/utils/assets.ts

+21
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import * as glob from 'glob';
33
import {getGlobalVariable} from './env';
44
import {relative} from 'path';
55
import {copyFile} from './fs';
6+
import {updateJsonFile} from './project';
7+
import {silentNpm} from './process';
68

79

810
export function assetDir(assetName: string) {
@@ -27,3 +29,22 @@ export function copyAssets(assetName: string) {
2729
})
2830
.then(() => tempRoot);
2931
}
32+
33+
34+
export function createProjectFromAsset(assetName: string) {
35+
const packages = require('../../../lib/packages');
36+
37+
return Promise.resolve()
38+
.then(() => copyAssets(assetName))
39+
.then(dir => process.chdir(dir))
40+
.then(() => updateJsonFile('package.json', json => {
41+
for (const packageName of Object.keys(packages)) {
42+
if (json['dependencies'].hasOwnProperty(packageName)) {
43+
json['dependencies'][packageName] = packages[packageName].dist;
44+
} else if (json['devDependencies'].hasOwnProperty(packageName)) {
45+
json['devDependencies'][packageName] = packages[packageName].dist;
46+
}
47+
}
48+
}))
49+
.then(() => silentNpm('install'));
50+
}

tests/models/find-lazy-modules.spec.ts

-60
This file was deleted.

0 commit comments

Comments
 (0)