Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 13:28:10 - forgetname: [13:04:39] i need to load js module
- 13:28:10 - zer0: [13:14:48] forgetname, not sure what is the question
- 13:28:10 - zer0: [13:15:00] do you need to import what from where?
- 13:28:10 - forgetname: [13:15:19] we have loader.js somewhere in sdk
- 13:28:10 - forgetname: [13:15:33] toolkit\loader.js
- 13:28:10 - zer0: [13:15:35] yes
- 13:28:10 - zer0: [13:15:39] do you need to require loader?
- 13:28:10 - forgetname: [13:15:43] no
- 13:28:10 - zer0: [13:15:52] so, what do you need to require / import?
- 13:28:10 - forgetname: [13:15:52] i need to load custom module into loader.js
- 13:28:10 - zer0: [13:16:08] ?
- 13:28:10 - zer0: [13:16:15] I don't understand the question sorry
- 13:28:10 - forgetname: [13:16:22] i want mymodule = require('../mymodule')
- 13:28:10 - zer0: [13:16:25] ok
- 13:28:10 - forgetname: [13:16:27] inside loader.js
- 13:28:10 - zer0: [13:16:29] why?
- 13:28:10 - forgetname: [13:16:33] i need it
- 13:28:10 - zer0: [13:16:36] loader.js shouldn't be modified
- 13:28:10 - zer0: [13:16:41] it's something we ship with firefox
- 13:28:10 - zer0: [13:16:45] not with the add-on
- 13:28:10 - forgetname: [13:16:54] i already modified it in many ways
- 13:28:10 - forgetname: [13:17:01] )i shipping build, not addon
- 13:28:10 - zer0: [13:17:02] well, you shouldn't :)
- 13:28:10 - zer0: [13:17:05] ah ok
- 13:28:10 - forgetname: [13:17:14] my question
- 13:28:10 - zer0: [13:17:14] consider that yo can create your own loader,
- 13:28:10 - zer0: [13:17:23] without modifying toolkit/loader
- 13:28:10 - forgetname: [13:17:24] it not have require, only import
- 13:28:10 - zer0: [13:17:39] yes, because loader is the one that create require.
- 13:28:10 - forgetname: [13:17:42] sorry i really just need to modify it, everytime people not understand what i doing
- 13:28:10 - zer0: [13:17:51] That's why it would be better create your own loader,
- 13:28:10 - zer0: [13:17:56] without modifying the original one
- 13:28:10 - zer0: [13:18:07] so you will have require,
- 13:28:10 - zer0: [13:18:14] and you can do basically everything you want
- 13:28:10 - forgetname: [13:18:31] I need modify original one because this one loads main.js from addons
- 13:28:10 - forgetname: [13:18:51] so it not have require but have import
- 13:28:10 - forgetname: [13:19:01] can I use import somehow instead require to load my js module?
- 13:28:10 - forgetname: [13:19:14] module located in sdk dir
- 13:28:10 - zer0: [13:19:20] not sure what you mean. The original is not made to load main.js from add-on, it's made as generic commonjs loader, that can be used to import main.js yes, but mainly everything
- 13:28:11 - zer0: [13:19:34] no, you can't. You can use import to load specific jsm file,
- 13:28:11 - zer0: [13:19:39] that are not commonjs one
- 13:28:11 - forgetname: [13:20:01] but jsm file is some sort of js module
- 13:28:11 - forgetname: [13:20:26] how can i convert requirejs module into jsm
- 13:28:11 - forgetname: [13:21:53] you will be shocked but i modify cuddlefish too, only god know how it work :c
- 13:28:11 - zer0: [13:25:47] forgetname, I don't know why you need to modify such thing, also I don't think we rely on cuddlefish anymore; however you can't convert jsm module into commonjs module if you want to use Cu.import
- 13:28:11 - zer0: [13:25:53] you have to do the opposite
- 13:28:11 - zer0: [13:25:57] (in case)
- 13:28:11 - zer0: [13:26:26] Or, as said, don't modifying the core functionality, and just create your own loader
- 13:28:11 - zer0: [13:26:37] But I don't know what's your aim
- 13:28:11 - forgetname: [13:28:02] yes i mean opposite, i found that i need just to declare EXPORTED_SYMBOLS
- 13:28:11 - ***: Playback Complete.
- 13:28:11 - Channel mode +nrt set by fripp.mozilla.org.
- 13:28:24 - zer0: forgetname, you have to declare exported_symbol, but you have also to remove any call to `require` and any usage of `exports`
- 13:29:01 - zer0: Also, keep in mind that by default it pollute the current scope with the exported_symbols
- 13:29:14 - forgetname: i not use any exports or require
- 13:29:23 - zer0: so for having something similar to a `require`, you have to pass an empty object
- 13:29:26 - zer0: something like:
- 13:29:28 - forgetname: but have ns_mailformed_uri error now, dont know why
- 13:29:43 - zer0: const { foo } = Cu.import("resource://...", {});
- 13:29:49 - zer0: `import` needs a full uri
- 13:29:52 - zer0: maybe is that?
- 13:30:05 - zer0: You can't pass relative uri like `require`
- 13:31:04 - forgetname: i tried const schemes = require('../system/schemes');
- 13:31:23 - forgetname: from loader.js, this patch should be valid i think
- 13:31:31 - forgetname: ah i forget .jsm
- 13:31:38 - forgetname: ah no, i not forget
- 13:32:11 - forgetname: it totaly wrong code)) sorry
- 13:32:26 - forgetname: const schemes = Cu.import('../../sdk/system/schemes.jsm');
- 13:34:10 - forgetname: maybe import inside loader.js work only with resource:// uri
- 13:43:30 - forgetname: yes resource uri works great, thanks for help:3
- 13:43:55 - forgetname: zer0: you first here who know how loader.js works )
- 13:47:33 - zer0: forgetname, np ;)
Advertisement
Add Comment
Please, Sign In to add comment