Упакуйте класс ES6 из узла в браузер - PullRequest
0 голосов
/ 01 июля 2019

Я пытался упаковать в браузер супер простой объект класса стиля ES6. Пример

class Foo {
   constructor(){
        this.name = "Foo";
   }
}
module.exports = Foo;

Конечно, я могу использовать это в своих проектах узлов просто отлично, но это также полезный объект для браузера. До сих пор я пробовал webpack и browserify, но они не выставляют объект глобально. Я надеялся в основном включить сгенерированный файл сценария и иметь возможность вызывать let foo = new Foo() из браузера. Как я могу это сделать?

* обратите внимание, что буквально only вещь, мешающая мне просто включить файл в браузер, это module.exports

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Не взламывая огромную библиотеку и не создавая другой модуль узла, чтобы каким-то образом автоматизировать это, я подумал об этой знаменитой бритве сегодня и только что сделал это.

if(typeof module !== "undefined"){
    module.exports = Foo;
}
0 голосов
/ 01 июля 2019

Для Javascript 6 вы хотите сделать что-то вроде:

class Foo {
   constructor(){
        this.name = "Foo";
   }
}
export default Foo;

(используйте экспорт вместо module.exports)

Затем из другого файла js выполните:

import Foo from '<path_to_foo>';

Например, если Foo.js находится в том же каталоге, что и «другой» модуль, то вы можете сделать: import Foo from './Foo';

Тогда вы можете сделать let f = new Foo()

Современные браузеры, как правило, поддерживают js-модули, однако это не гарантируется.

Надеюсь, это поможет

...