Dynamic Imports
Opened this issue · 1 comments
Hello,
it seems imports in general are supported in Javet, but it is not clear whether dynamic imports are as well or not. May I ask please if there is a minimal example using dynamic imports? More specifically, I want to evaluate the following expression:
import('https://cdn.jsdelivr.net/npm/@xenova/transformers').then(({pipeline}) => {
pipeline('sentiment-analysis').then(pipe => {
pipe('I detest it!').then(out => {
console.log(out)
})
})
})
, which takes a few seconds to complete and eventually prints a JSON object to the console. However, so far I only get the "not supported" error message.
Regarding normal import, running import { pipeline } from 'https://esm.sh/@xenova/transformers@2.16.0'
returns Cannot find package 'https://esm.sh/@xenova/transformers@2.16.0'
. Is there something I am missing?
Thanks
May I know which mode you were using?
Both Node.js and V8 modes don't have the built-in support to importing from arbitrary resource because:
- V8 is a pure script engine that doesn't know file system or network.
- Javet is designed to be secure by default. Allowing the guest scripts to access storage or network is not secure at all.
I suggest you write your own module resolver to empower the ESM by fetching the resource in the module resolution. Please refer to this doc for details.