feat: aws-nodejs-typescript template improvements

This commit is contained in:
Khaled Osman 2019-10-30 17:37:22 +01:00
parent 593ef909b8
commit 83cfbd25e8
9 changed files with 104 additions and 10 deletions

View File

@ -0,0 +1,10 @@
{
"name": "haha",
"version": "1.0.0",
"description": "Packaged externals for haha",
"private": true,
"scripts": {},
"dependencies": {
"source-map-support": "^0.5.10"
}
}

View File

@ -0,0 +1,2 @@
!function(e,t){for(var r in t)e[r]=t[r]}(exports,function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"hello",(function(){return n}));r(1);const n=async(e,t)=>({statusCode:200,body:JSON.stringify({message:"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!",input:e},null,2)})},function(e,t){e.exports=require("source-map-support/register")}]));
//# sourceMappingURL=handler.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
{
"name": "haha",
"version": "1.0.0",
"description": "Packaged externals for haha",
"private": true,
"scripts": {},
"dependencies": {
"source-map-support": "^0.5.10"
}
}

View File

@ -1,5 +1,5 @@
{
"name": "aws-nodejs-typescript",
"name": "haha",
"version": "1.0.0",
"description": "Serverless webpack example using Typescript",
"main": "handler.js",
@ -12,10 +12,16 @@
"devDependencies": {
"@types/aws-lambda": "^8.10.17",
"@types/node": "^10.12.18",
"@typescript-eslint/eslint-plugin": "^2.6.0",
"@typescript-eslint/parser": "^2.6.0",
"eslint": "^6.6.0",
"fork-ts-checker-webpack-plugin": "^3.0.1",
"serverless-webpack": "^5.2.0",
"ts-loader": "^5.3.3",
"typescript": "^3.2.4",
"webpack": "^4.29.0"
"webpack": "^4.29.0",
"webpack-cli": "^3.3.9",
"webpack-node-externals": "^1.7.2"
},
"author": "The serverless webpack authors (https://github.com/elastic-coders/serverless-webpack)",
"license": "MIT"

View File

@ -1,9 +1,13 @@
service:
name: aws-nodejs-typescript
name: haha
# app and org for use with dashboard.serverless.com
#app: your-app-name
#org: your-org-name
custom:
webpack:
webpackConfig: ./webpack.config.js
includeModules: true
# Add the serverless-webpack plugin
plugins:
- serverless-webpack
@ -11,6 +15,8 @@ plugins:
provider:
name: aws
runtime: nodejs10.x
apiGateway:
minimumCompressionSize: 1024 #Enable gzip compression for responses > 1KB
functions:
hello:

View File

@ -1,6 +1,9 @@
{
"compilerOptions": {
"lib": ["es2017"],
"lib": [
"es2017"
],
"removeComments": true,
"moduleResolution": "node",
"noUnusedLocals": true,
"noUnusedParameters": true,
@ -8,5 +11,14 @@
"target": "es2017",
"outDir": "lib"
},
"exclude": ["node_modules"]
"include": [
"./**/*.ts"
],
"exclude": [
"node_modules/**/*",
".serverless/**/*",
".webpack/**/*",
"_warmup/**/*",
".vscode/**/*"
]
}

View File

@ -0,0 +1,19 @@
{
"configurations": [
{
"name": "Lambda",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect",
"--debug-port=9229"
],
"program": "${workspaceFolder}/node_modules/serverless/bin/serverless",
"args": [
"offline"
],
"port": 9229,
"console": "integratedTerminal"
}
]
}

View File

@ -1,23 +1,51 @@
const path = require('path');
const slsw = require('serverless-webpack');
const nodeExternals = require('webpack-node-externals')
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin')
module.exports = {
context: __dirname,
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
entry: slsw.lib.entries,
devtool: 'source-map',
devtool: slsw.lib.webpack.isLocal ? 'cheap-module-eval-source-map' : 'source-map',
resolve: {
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
extensions: ['.mjs', '.json', '.ts'],
symlinks: false,
cacheWithContext: false
},
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
filename: '[name].js'
},
target: 'node',
externals: [nodeExternals()],
module: {
rules: [
// all files with a `.ts` or `.tsx` extension will be handled by `ts-loader`
{ test: /\.tsx?$/, loader: 'ts-loader' },
],
{
test: /\.(tsx?)$/,
loader: 'ts-loader',
exclude: [
[
path.resolve(__dirname, 'node_modules'),
path.resolve(__dirname, '.serverless'),
path.resolve(__dirname, '.webpack')
]
],
options: {
transpileOnly: true,
experimentalWatchApi: true
}
}
]
},
plugins: [
// new ForkTsCheckerWebpackPlugin({
// eslint: true,
// eslintOptions: {
// cache: true
// }
// })
]
};