Skip to content

Commit 3eaca8d

Browse files
cardonijogold
authored andcommitted
Fix build errors for serverless > 1.17.0 (#36)
* Fix function artifact now under package property * Fix single function deployment by cleaning .webpack folder later in the deploy hooks Note: this drops support for serverless < 1.18.0 Closes #37
1 parent d3ef522 commit 3eaca8d

3 files changed

Lines changed: 15 additions & 9 deletions

File tree

src/index.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ class ServerlessPluginWebpack {
2323
this.hooks = {
2424
'before:package:createDeploymentArtifacts': () => this.webpackBundle('service'),
2525
'after:package:createDeploymentArtifacts': () => this.restoreAndCopy('service'),
26+
'after:package:finalize': () => this.clean(),
2627
'before:deploy:function:packageFunction': () => this.webpackBundle('function'),
2728
'after:deploy:function:packageFunction': () => this.restoreAndCopy('function'),
29+
'after:deploy:function:deploy': () => this.clean(),
2830
};
2931
}
3032

@@ -69,7 +71,7 @@ class ServerlessPluginWebpack {
6971
// Restore service path
7072
this.serverless.config.servicePath = this.originalServicePath;
7173

72-
// Copy .webpack/.serverless to .serverless and remove .webpack
74+
// Copy .webpack/.serverless to .serverless and set artifacts
7375
const src = path.join(this.originalServicePath, webpackFolder, serverlessFolder);
7476
const dest = path.join(this.originalServicePath, serverlessFolder);
7577
return fs.copy(src, dest)
@@ -80,9 +82,13 @@ class ServerlessPluginWebpack {
8082
this.serverless.service.functions
8183
);
8284
}
83-
return fs.remove(path.join(this.originalServicePath, webpackFolder));
85+
return Promise.resolve();
8486
});
8587
}
88+
89+
clean() {
90+
return fs.remove(path.join(this.originalServicePath, webpackFolder));
91+
}
8692
}
8793

8894
module.exports = ServerlessPluginWebpack;

src/lib/service.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const setFnsPackage = R.map(
2626

2727
const setFnsArtifacts = (serverlessPath, fns) => R.map(
2828
R.over(
29-
R.lensProp('artifact'),
29+
R.lensPath(['package', 'artifact']),
3030
artifact => path.join(serverlessPath, path.basename(artifact))
3131
),
3232
fns

test/service.test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,15 @@ test('setFnsPackage', () => {
7777

7878
test('setArtifacts', () => {
7979
const artifactFns = {
80-
firstGet: { artifact: '/.serverless/.webpack/service-dev-firstGet.zip' },
81-
secondGet: { artifact: '/.serverless/.webpack/service-dev-secondGet.zip' },
82-
post: { artifact: '/.serverless/.webpack/service-dev-post.zip' },
80+
firstGet: { package: { artifact: '/.serverless/.webpack/service-dev-firstGet.zip' } },
81+
secondGet: { package: { artifact: '/.serverless/.webpack/service-dev-secondGet.zip' } },
82+
post: { package: { artifact: '/.serverless/.webpack/service-dev-post.zip' } },
8383
};
8484

8585
const modifiedArtifactFns = {
86-
firstGet: { artifact: path.join('/.serverless', 'service-dev-firstGet.zip') },
87-
secondGet: { artifact: path.join('/.serverless', 'service-dev-secondGet.zip') },
88-
post: { artifact: path.join('/.serverless', 'service-dev-post.zip') },
86+
firstGet: { package: { artifact: path.join('/.serverless', 'service-dev-firstGet.zip') } },
87+
secondGet: { package: { artifact: path.join('/.serverless', 'service-dev-secondGet.zip') } },
88+
post: { package: { artifact: path.join('/.serverless', 'service-dev-post.zip') } },
8989
};
9090
expect(service.setFnsArtifacts('/.serverless', artifactFns)).toEqual(modifiedArtifactFns);
9191
});

0 commit comments

Comments
 (0)