Как правильно экспортировать модуль javascript в проект Webpack - PullRequest
1 голос
/ 26 апреля 2020

В настоящее время у меня возникают проблемы с экспортом модуля в веб-пакете. Я был в состоянии экспортировать простые модули, которые содержат функции, подобные следующим:

let getEle = function(item) {
    return document.getElementById(item);
};

module.exports = {
    getEle: getEle
};

И в моем основном. js Я буду импортировать его так:

import { getEle } from './helper.js';

Это работает без проблем. Однако я пытался экспортировать найденный пользовательский указатель даты (а именно, FooPicker: https://github.com/yogasaikrishna/foopicker):

var FooPicker = (function () {
    // code
    function FooPicker() {
        // code
    }
    return FooPicker;
})();

// my attempt at exporting the entire FooPicker module

module.exports = {
    FooPicker: FooPicker
}

И я пытаюсь импортировать его так же, как и в моем главном. js:

import FooPicker from './fooPicker.js'

Моя попытка использования модуля (это работает, как и ожидалось, если я просто вызываю функцию в демонстрационном HTML файле):

let foopicker2 = new FooPicker({
  id: 'datepicker2'
});

Однако это не работает, и я вижу следующую ошибку:

Uncaught TypeError: FooPicker is not a constructor

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

1 Ответ

0 голосов
/ 26 апреля 2020

Ваш случай с export

var FooPicker = (function () {
    // code
    function FooPicker() {
        // code
    }
    return FooPicker;
})();

var fooPicker = new FooPicker()
console.log(fooPicker)
Попробуйте:
module.exports = FooPicker

const FooPicker = require('./fooPicker.js')
var fooPicker = new FooPicker()

Это будет работать

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