__dirname
node.jsで言う__dirnameを得る方法。
import.meta.urlにそのスクリプトを指すURLが入っているので、これを使う。
__dirnameを取得する関数を書いてみました。こんな感じ? mactkg.icon
code:dirname.ts
function dirname(): string {
const regexp = /(?<scheme>.+):\/\/(?<basename>.+)\/(?<filename>.+)/
return import.meta.url.match(regexp).groups.basename
}
URLを使う方法が確実ですkeroxp.icon
2019/11/19更新。"."でファイルのディレクトリ名になるようです。
code:index.ts
// file:///home/deno/src/index.ts
const __dirname = new URL(".", import.meta.url).pathname
// /home/deno/src
windowsだとこの方法だと動かないようです……keroxp.icon2020/2/16 URLの仕様自体とwindowsのパス仕様が全然違う?
どうなるのか知りたい
ファイルがあるディレクトリを元に相対パスで書くのはpath stdを活用すると結構スッキリ書けたyuta0801.icon code:ts
const path = join(
dirname(fromFileUrl(import.meta.url)),
"path", "to", "file"
)