如何使用ES6获取主文件的路径url? 就像在 NodeJS 中一样,我们有
require.main.filename
import 也有类似的东西吗?
process.argv[1]
,但提到它有一个限制,如果你在运行node
时不输入扩展名,process.argv[1]
也不会拥有它
我相信你可以使用
require.resolve
解决第二个问题,但是你需要从 CommonJS 脚本进行依赖注入,因为 ES6 模块没有定义 require
。
> node main
.../path/to/main.js
require.resolve()
import( `file://${__dirname}\\module.mjs` )
.then( r => r.default( require.resolve ) )
或
async ()=>{
await import( `file://${__dirname}\\module.mjs` )
.default( require.resolve )
}
export default function( resolve ){
console.log( resolve( process.argv[1] ) )
}
require
并使用 require.main.filename
:import( `file://${__dirname}\\module.mjs` )
.then( r => r.default( require ) )
或
async ()=>{
await import( `file://${__dirname}\\module.mjs` )
.default( require )
}
export default function( r ){
console.log( r.main.filename )
}
我在使用 NodeJS 时遇到了类似的问题。为了解决这个问题,我做了
process.cwd()