LoginSignup
0
0

Azure Functions (Node Typescript) のtsconfigにpathsのエイリアス設定を行ったメモ

Posted at

概要

Azure FunctionsのTypescriptでもエイリアス使いたい。
結論から言うと、tsc-aliasを追加で導入する必要があった。

ソースコード

tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "outDir": "dist",
    "rootDir": ".",
    "sourceMap": true,
    "strict": false,
+    "paths": {
+      "@/*": ["./src/*"]
+    } 
  }
}

エラー

tscしただけでは、下記のようなエラーが発生する。パスの解決に失敗している。

Error: Worker was unable to load entry point "dist/src/functions/credentials.js": Cannot find module '@/lib/azure-storage.js'

対応

stack over flowで似たようなことをしている人がいた。

tsc-aliasを使う方法の模様。同様なことを実現するのに、tsconfig-pathsもあるようだが、tsc-aliasのほうがシンプルそうなのでこちらを試す。

修正

api/package.json
{
  "scripts": {
-    "build": "tsc",
+    "build": "tsc && tsc-alias",
    // 略
  },
  "devDependencies": {
    "@redocly/cli": "^1.12.0",
    "@types/node": "^20.x",
    "rimraf": "^5.0.5",
+    "tsc-alias": "^1.8.8",
    "typescript": "^5.4.5"
  },
  "main": "dist/src/functions/*.js"
}

結果

実行したところ、エラーなく実行されることを確認できた。

参考

stack over flow - node-js-typescript-azure-function-cannot-import-with-absolute-path-minimal-re
stack over flow - how-can-i-use-a-custom-path-for-azure-function-app-functions
Nxモノレポ上でAzure Functionsをビルド・デプロイできるようにするメモ
issues - "@azure/functions-core" can't be resolved by bundlers

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0