We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VOICEVOXエディタ内では、path.join(パスの連結)で問題ない箇所でよくpath.resolve(パスの解決)が行われています。 path.resolveは後ろに絶対パスがあった時に予想外の挙動をするので危ない気がします。
join("hoge/fuga", "/piyo.txt") -> hoge\fuga\piyo.txt resolve("hoge/fuga", "/piyo.txt") -> C:\piyo.txt
↑用のコード
import { join, resolve } from "path"; { const result = join("hoge/fuga", "/piyo.txt"); console.log(`join("hoge/fuga", "/piyo.txt")`); console.log("->", result); } { const result = resolve("hoge/fuga", "/piyo.txt"); console.log(`resolve("hoge/fuga", "/piyo.txt")`); console.log("->", result); } { const result = join("hoge/fuga", "..", "piyo.txt"); console.log(`join("hoge/fuga", "..", "piyo.txt")`); console.log("->", result); } { const result = resolve("hoge/fuga", "..", "piyo.txt"); console.log(`resolve("hoge/fuga", "..", "piyo.txt")`); console.log("->", result); }
場所によっては後ろに絶対パスが来た時にそっちを優先して欲しいようなコードもありそうです。 パスを連結したいのか、そういう想定をしたいのかどっちかわからないので、パスの連結でいい時は連結の方が良さそう。
コード全体でだいたいpath.joinに置き換わったらこのissueはcloseして良いと思います。
コードの意図が分かりやすくなり、予想外の挙動をしにくくなりそう。
結構考えるのがめんどくさくはある。
コード全体でresolveで検索し、path.resolveのものを1つ1つjoinにして良いか考えて置き換えていく。 (Promise.resolveのコードもヒットするのでちょっと厄介)
resolve
The text was updated successfully, but these errors were encountered:
No branches or pull requests
内容
VOICEVOXエディタ内では、path.join(パスの連結)で問題ない箇所でよくpath.resolve(パスの解決)が行われています。
path.resolveは後ろに絶対パスがあった時に予想外の挙動をするので危ない気がします。
↑用のコード
場所によっては後ろに絶対パスが来た時にそっちを優先して欲しいようなコードもありそうです。
パスを連結したいのか、そういう想定をしたいのかどっちかわからないので、パスの連結でいい時は連結の方が良さそう。
コード全体でだいたいpath.joinに置き換わったらこのissueはcloseして良いと思います。
Pros 良くなる点
コードの意図が分かりやすくなり、予想外の挙動をしにくくなりそう。
Cons 悪くなる点
結構考えるのがめんどくさくはある。
実現方法
コード全体で
resolve
で検索し、path.resolveのものを1つ1つjoinにして良いか考えて置き換えていく。(Promise.resolveのコードもヒットするのでちょっと厄介)
その他
The text was updated successfully, but these errors were encountered: