メインの Express アプリのクラスを使用して、コマンドライン スクリプトを作成しています。
スクリプトは次のフォルダーにあります。
bin/utils/
├── sync-buyers.ts
└── tsconfig.json
メインの Express アプリは/app
使用中import '@/foo/bar/thing
です。
tsconfig.json
これは、メイン アプリの で次のように設定されます。
"paths": {
"@/*": ["*"],
"*": [
"node_modules/*",
"app/typings/*"
]
}
},
"include": ["app/**/*", "test/**/*"],
"exclude": ["app/**/*.test.ts", "/__tests__/", "/__mocks__/", "/__snapshots__/", "app/**/__mocks__/"],
"files": ["typings/global.d.ts"]
スクリプトの実行
メインアプリからインポートできるかテストしているので、sayHello()
関数を作成しました。
#!/usr/bin/env ts-node
/* tslint:disable */
import { sayHello } from '../../app/services/v2/oapp';
sayHello();
私がそれを実行すると:
TSError: ⨯ Unable to compile TypeScript:
../../app/services/v2/oapp.ts(9,19): error TS2307: Cannot find module
'@/helpers/fetch'.
../../app/services/v2/oapp.ts(10,31): error TS2307: Cannot find module
'@/services/v2/buyer'.
../../app/services/v2/oapp.ts(11,51): error TS2307: Cannot find module
'@/http/HttpHeader'.
概要:
ts-node は '@' スタイルのインポートをサポートしていますか? もしそうなら、どのように設定すればよいですか?