Использование jQuery DataTables с Rollup.js - PullRequest
11 голосов
/ 07 мая 2019

Хорошо, я впервые использую инструментальный пакет, и мне нравится, как мало он делает код.Потрясение деревьев - это здорово.Тем не менее, у меня возникли проблемы с тем, чтобы включить все правильно.Я попытался создать единую точку входа exp.js, куда я экспортирую вещи из разных файлов, например:

export {
    dashboardCharts
} from './dashboard.js';

мой rollup.config.js выглядит как

export default {
    // tell rollup our main entry point
    input: [
        'assets/js/exp.js',
    ],

    output: {
      name: 'helloworld',
      file: 'build/js/main.js',
        format: 'iife'
        // format: 'umd'
    },
    plugins: [
        resolve({
            // pass custom options to the resolve plugin
            customResolveOptions: {
              moduleDirectory: 'node_modules'
            }
        }),
        multiEntry()
        // terser(),
    ],
};

Файлdashboard.js включает в себя библиотеку datatables, поэтому datatables включается в комплект main.js.Тем не менее, datatables проверяет, должен ли он идти по пути commonjs или нет, проверяя

else if ( typeof exports === 'object' ) {
    // CommonJS
    module.exports = function (root, $) {

, и я пытаюсь выполнить это в браузере, поэтому я не хочу путь commonjs.Область верхнего уровня свертка объявлена ​​как

var helloworld = (function (exports) {

, поэтому экспорт заканчивается как пустой объект, браузер пытается выполнить путь commonjs, и мы получаем ошибку «модуль не определен».

Мне кажется, что я очень близок, но здесь мне не хватает простого решения.Я также попытался сделать формат umd вместо iife, но это не помогло.Должна ли я использовать другую версию таблиц данных?

...