возвращение инстанс класса + вавилон JS - PullRequest
0 голосов
/ 07 декабря 2018

Я собираю «библиотеку» на JS, и обязательно должен быть только один файл .js.

Я только начал строить, и до сих пор получал это:

app-es6 / main.js

class Sjs {

    create(obj) {
        console.log(obj);
    }

}

index.html

<script src="app/main.js"></script>

<script>
    let sjs = new Sjs();
    sjs.create({
        type: 'select'
    });
</script>

.babelrc

{
    "presets": ["es2015"]
}

Что мне нужно сделать:

1) Не следует создавать экземпляр класса в html, экземпляр должен быть готов из js, поэтому я могу просто ввести sjs.create (), например, jQuery, moment и т. Д.

2) Если мне нужночтобы импортировать больше JS-файлов, чтобы создать что-то более структурированное, могу ли я «свернуть» в один JS, свернутый?

Спасибо за совет.

1 Ответ

0 голосов
/ 07 декабря 2018

1) Не следует создавать экземпляр класса в html, экземпляр должен быть готов из js, поэтому я могу просто ввести sjs.create (), например, jQuery, moment и т. Д.

Просто поместите его в main.js, после объявления class:

let sjs = new Sjs();

let в глобальной области видимости создает глобальную переменную (но не свойство глобального объекта [обычно доступный какwindow в браузерах]).Если вы также хотите это свойство, используйте var вместо let или присвойте window.sjs (что также создаст глобальную переменную; все свойства глобального объекта являются глобальными, просто в ES2015 не всеglobals - это свойства глобального объекта).

Тем не менее, если это одноэлементное, использование class не принесет особой пользы.Вероятно, также стоит отметить, что jQuery и MomentJS предоставляют функции (jQuery / $, moment), а не не вызываемые объекты.

2) Еслимне нужно импортировать больше файлов JS, чтобы сделать что-то более структурированное, могу ли я "обернуть" в один JS, свернутый?

Вы ищете упаковщик , как Webpack , Rollup и т. Д. У них есть плагины для интеграции с Babel , минимизации, ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...