Yeah, you can define Module.locateFile in a --pre-js. If you are shipping
html, you can also define it in the html. It just needs to be executed
before we run the main js which would call Module.locateFile.

On Mon, Feb 13, 2017 at 7:38 PM, <[email protected]> wrote:

> Is the best way to use the --pre-js option? Or is there a better way? (I
> am compiling a library and so don't know where the end-developer might put
> my files, so I would love it if they could define it...)
>
>
> On Monday, February 13, 2017 at 10:30:36 PM UTC-5, [email protected]
> wrote:
>>
>> How do I specify that in node? Is there a way to specify the module
>> before the emscripten file attempts to load it's mem init?
>>
>> On Monday, February 13, 2017 at 3:00:53 AM UTC-5, jj wrote:
>>>
>>> Try specifying the Module.locateFile() callback:
>>> http://kripken.github.io/emscripten-site/docs/api_reference/
>>> module.html#Module.locateFile
>>>
>>> You can use that to tell the loader the path of where to look for any
>>> files, not just the .js.mem file.
>>>
>>> (Btw, with .wasm the memory init file will be gone, which is pretty nice)
>>>
>>> 2017-02-11 21:10 GMT+02:00 Tomas Reimers <[email protected]>:
>>>
>>>> Hi all,
>>>>
>>>> I think I'm overlooking something fundamental, so would appreciate any
>>>> help / tips!
>>>>
>>>> When you compile any $FILE with optimizations it produces a separate
>>>> $FILE.js.mem file for memory initialization. When you then try to open
>>>> $FILE from node, it looks in the cwd for $FILE.js.mem. This creates a
>>>> problem when you're trying to run the file from any directory besides its
>>>> own.
>>>>
>>>> I found this old post
>>>> <https://github.com/kripken/emscripten/issues/2537> from 2014
>>>> detailing the problem, and then this function in Module
>>>> <https://kripken.github.io/emscripten-site/docs/api_reference/module.html#Module.locateFile>
>>>>  that
>>>> would allow you to define a custom search path for .js.mem; however that
>>>> seems inconvenient because (as best as I can tell) the emscripten Module in
>>>> node can't be defined before you try to load the .js.mem...
>>>>
>>>> So, without simply setting --memory-init-file 0 how can you require a
>>>> compiled asm module from a different directory? Is there a way to easily
>>>> define Module before you require() the emscripten file? Right now I'm doing
>>>> something akin to:
>>>>
>>>> let cwd = process.cwd();
>>>> process.chdir(__dirname + '/../other/path/');
>>>> const my_lib = require('../other/path/my_lib.js');
>>>> process.chdir(cwd);
>>>>
>>>> But this seems hackish...
>>>>
>>>> Thanks,
>>>> Tomas
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "emscripten-discuss" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to