diff options
author | 2022-09-28 23:13:33 +0800 | |
---|---|---|
committer | 2022-09-28 23:13:33 +0800 | |
commit | 812658ad2ab3732a99e35c4fd903e302e723db46 (patch) | |
tree | 37dc457bcfa8558e546d064eb315a74149010da1 /packages/markdown/remark/src/load-plugins.ts | |
parent | f4bca41a2d85968a2c9f2379f99954c7bcb06df1 (diff) | |
download | astro-812658ad2ab3732a99e35c4fd903e302e723db46.tar.gz astro-812658ad2ab3732a99e35c4fd903e302e723db46.tar.zst astro-812658ad2ab3732a99e35c4fd903e302e723db46.zip |
Remove shamefully-hoist (#4842)
Diffstat (limited to 'packages/markdown/remark/src/load-plugins.ts')
-rw-r--r-- | packages/markdown/remark/src/load-plugins.ts | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/packages/markdown/remark/src/load-plugins.ts b/packages/markdown/remark/src/load-plugins.ts index c64d13543..37798db14 100644 --- a/packages/markdown/remark/src/load-plugins.ts +++ b/packages/markdown/remark/src/load-plugins.ts @@ -1,8 +1,21 @@ +import path from 'path'; +import { pathToFileURL } from 'url'; import * as unified from 'unified'; +import { resolve as importMetaResolve } from 'import-meta-resolve'; + +const cwdUrlStr = pathToFileURL(path.join(process.cwd(), 'package.json')).toString(); async function importPlugin(p: string | unified.Plugin): Promise<unified.Plugin> { if (typeof p === 'string') { - const importResult = await import(p); + // Try import from this package first + try { + const importResult = await import(p); + return importResult.default; + } catch {} + + // Try import from user project + const resolved = await importMetaResolve(p, cwdUrlStr); + const importResult = await import(resolved); return importResult.default; } |