Skip to content

Commit e7c2f4e

Browse files
committed
fix(nx-serverless): fix dependencies and replacing dist folder in server.ts
fix npm dependencies for nx-serverless when publishing Fix how server.ts dist folder is replace for it to work with serverless deployment and universal shematics in angular BREAKING CHANGE: renamed application to api-serverless for node-typescript apps
1 parent 14366fa commit e7c2f4e

8 files changed

Lines changed: 51 additions & 9 deletions

File tree

libs/nx-serverless/.npmignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
**/*.spec.*
22
*.ts
3-
tsconfig.json
3+
# tsconfig.json
44
.*
55
.
66
*.tgz

libs/nx-serverless/package.json

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,43 @@
11
{
22
"name": "@flowaccount/nx-serverless",
3-
"version": "0.4.0",
3+
"version": "0.4.5",
44
"main": "src/index.js",
5+
"description": "Serverless schematics for nx workspace",
6+
"keywords": [
7+
"Serverless Framework",
8+
"Serverless",
9+
"Angular Universal Deploy",
10+
"Node Typescipt",
11+
"Workspace",
12+
"Nx",
13+
"Monorepo"
14+
],
515
"schematics": "./collection.json",
616
"builders": "./builders.json",
17+
"license": "MIT",
718
"peerDependencies": {
819
"@nguniversal/express-engine": "^9.0.1",
920
"express": "^4.17.1",
1021
"@nrwl/workspace": "^9.0.1",
1122
"@nrwl/node": "^9.0.1"
1223
},
13-
"devDependencies": {},
24+
"dependencies": {
25+
"@nrwl/workspace": "9.0.1",
26+
"dotenv": "6.2.0",
27+
"dotenv-json": "^1.0.0",
28+
"serverless": "^1.59.3",
29+
"serverless-webpack": "5.3.1",
30+
"copy-webpack-plugin": "5.1.1",
31+
"license-webpack-plugin": "2.1.2",
32+
"circular-dependency-plugin": "^5.0.2",
33+
"fork-ts-checker-webpack-plugin": "^3.1.1",
34+
"tsconfig-paths-webpack-plugin": "^3.2.0",
35+
"webpack": "4.41.2",
36+
"webpack-merge": "4.2.1",
37+
"webpack-dev-server": "3.9.0",
38+
"webpack-node-externals": "1.7.2",
39+
"depcheck": "0.9.2"
40+
},
1441
"repository": {
1542
"type": "git",
1643
"url": "ssh://git@github.com/flowaccount/nx-plugins.git"

libs/nx-serverless/src/schematics/angular-universal/application.spec.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,15 @@ describe('app', () => {
163163
tree,
164164
'apps/my-app/tsconfig.serverless.json'
165165
);
166-
expect(tsconfig.compilerOptions.types).toContain('node');
167166

167+
expect(tsconfig.compilerOptions.types).toContain('node');
168168
expect(tsconfig.files).toEqual(['handler.ts']);
169+
const servertsContent = tree.readContent('apps/my-app/server.ts');
170+
expect(
171+
servertsContent.indexOf(
172+
"environment.production ? join(process.cwd(), './browser') : join(process.cwd(), 'dist/my-app/browser')"
173+
) > -1
174+
);
169175
});
170176
});
171177

libs/nx-serverless/src/schematics/angular-universal/application.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ function updateServerTsFile(options: NormalizedSchema): Rule {
148148
host.overwrite(
149149
modulePath,
150150
moduleSource.replace(
151-
`join(process.cwd(), 'dist/${options.appProjectRoot}')`,
151+
`join(process.cwd(), 'dist/${options.project}/browser')`,
152152
`environment.production ? join(process.cwd(), './browser') : join(process.cwd(), 'dist/${options.appProjectRoot}/browser')`
153153
)
154154
);
@@ -233,8 +233,8 @@ export default function(schema: Schema): Rule {
233233
})
234234
: noop(),
235235
addAppFiles(options),
236-
options.addUniversal ? updateServerTsFile(options) : noop(),
237236
addServerlessYMLFile(options),
237+
options.addUniversal ? updateServerTsFile(options) : noop(),
238238
updateWorkspaceJson(options)
239239
])(host, context);
240240
};

libs/nx-serverless/src/schematics/init/init.spec.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ fdescribe('init', () => {
1111
tree = createEmptyWorkspace(tree);
1212
});
1313

14-
it('should add dependencies for non-universal', async () => {
14+
it('should add dependencies for node apis', async () => {
1515
const result = await runSchematic('init', { universalApp: false }, tree);
1616
const packageJson = readJsonInTree(result, 'package.json');
1717
expect(
@@ -39,7 +39,11 @@ fdescribe('init', () => {
3939
expect(
4040
packageJson.devDependencies['serverless-apigw-binary']
4141
).toBeDefined();
42+
expect(
43+
packageJson.devDependencies['@types/aws-serverless-express']
44+
).toBeDefined();
4245
expect(packageJson.dependencies['aws-serverless-express']).toBeDefined();
46+
expect(packageJson.dependencies['express']).toBeDefined();
4347
});
4448

4549
// describe('defaultCollection', () => {

libs/nx-serverless/src/schematics/init/init.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import {
1919
serverlessOfflineVersion,
2020
awsTypeLambdaVersion,
2121
awsServerlessExpressVersion,
22-
serverlessApigwBinaryVersion
22+
serverlessApigwBinaryVersion,
23+
expressVersion
2324
} from '../../utils/versions';
2425

2526
function addDependencies(universal: boolean): Rule {
@@ -32,6 +33,7 @@ function addDependencies(universal: boolean): Rule {
3233
};
3334
if (universal) {
3435
dependencies['aws-serverless-express'] = awsServerlessExpressVersion;
36+
dependencies['express'] = expressVersion;
3537
devDependencies[
3638
'@types/aws-serverless-express'
3739
] = awsServerlessExpressVersion;

libs/nx-serverless/src/utils/serverless.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ export class ServerlessWrapper {
6969
`Environment vairbales set according to ${options.processEnvironmentFile}`
7070
);
7171
} else {
72-
context.logger.error('No env.json found! no environment will be set!');
72+
context.logger.error(
73+
'No env.json found! no environment will be set!'
74+
);
7375
}
7476
} catch (e) {
7577
context.logger.error(e);

libs/nx-serverless/src/utils/versions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ export const awsSdkVersion = '*';
66
export const awsTypeLambdaVersion = '^8.10.40';
77
export const awsServerlessExpressVersion = '^3.3.2';
88
export const serverlessApigwBinaryVersion = '^0.4.4';
9+
export const expressVersion = '^4.17.1';

0 commit comments

Comments
 (0)