#概要
構成でコードを書いています。
- Webpack
- TypeScript
- serverless framework
- serverless offline
ローカルでLambda Layerを使いたいと考えています。
#実際のコード
import 'source-map-support/register'; import type { ValidatedEventAPIGatewayProxyEvent } from '@libs/apiGateway'; import { formatJSONResponse } from '@libs/apiGateway'; import { middyfy } from '@libs/lambda'; const chromium = require('chrome-aws-lambda'); import schema from './schema'; const hello: ValidatedEventAPIGatewayProxyEvent<typeof schema> = async (event) => { const aaa = 'Testsssddlllljjssddkkksssddffs' console.log(aaa) const browser = await chromium.puppeteer.launch({ args: chromium.args, defaultViewport: chromium.defaultViewport, executablePath: await chromium.executablePath, headless: chromium.headless, ignoreHTTPSErrors: true, timeout: 10000, }); let page1 = await browser.newPage(); await page1.goto('https://sample.com') console.log(await page1.title()); await page1.close() const text = 'hellpaaa' console.log(text) return formatJSONResponse({ message: `Hello2, welcome to the exciting Serverless world!`, event, }); } export const main = middyfy(hello);
上記のコードにてchrome-aws-lambdaをAWS上にLayerとして保存しており、ローカルで実行時に参照するという形にしたいと考えています。
#問題点
Compileは問題なく出来るのですが、実行時に、下記のようなエラーが表示されます。
Error: Cannot find module 'source-map-support/register'
Compileは出来ているのになぜこんなエラーが出るのかわかりません。
#質問
- どの辺りに問題があると思いますか?
- importの定義方法に問題があるのかなと思います。例えば絶対パスで指定する方法ってあるのでしょうか?不便そうなので他の方法がない場合、やってみたいと考えてます。
package.json はどうなってますか? というか npm (または yarn) をお使いですか?
npm使っています。source-map-support部分だけ抜粋しました。
"source-map-support": {
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー