Как заставить свертку развернуть операторы require? - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь обернуть голову вокруг rollup.

Я использую библиотеку, которая генерирует файл в следующем формате: IIFE с требованием. Например

// index.js
(function() {
  const myThing = require('./thing');
})()

//thing.js
module.exports = { a: 3 };

Я пытаюсь использовать rollup с кучей других вещей, но мой bundle.js выглядит так:

(function () {
  var myThing = require('./thing');
})();

Что мне нужно сделать, чтобы мой bundle.js выглядел так? :

(function () {
  var myThing = { a: 3 };
})();

Если у меня возникли проблемы с настройкой, используйте rollup.config.js, который я использую:

var babel = require('rollup-plugin-babel');

export default {
  input: 'index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'es'
  },
  plugins: [
    babel({
      exclude: 'node_modules/**'
    })
  ]
};

Это пакеты, которые я установил:

"babel-core": "^6.26.3",
"babel-plugin-external-helpers": "^6.22.0",
"babel-preset-env": "^1.6.1",
"rollup": "^0.58.2",
"rollup-plugin-babel": "^3.0.4"

И мой конфиг babel:

{
  "presets": [
    [
      "env",
      {
        "modules": false
      }
    ]
  ],
  "plugins": [
    "external-helpers"
  ]
}

Чтобы построить, я просто звоню rollup -c.

1 Ответ

0 голосов
/ 30 апреля 2018

Хорошо, я понял это. Все, что мне нужно было использовать, это использовать плагин CommonJS:

import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';

export default {
  input: 'index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'cjs'
  },
  plugins: [
    resolve(),
    commonjs(),
    babel({
      exclude: 'node_modules/**'
    })
  ]
};
...