Конфигурация Webpack для преобразования модулей в глобальные функции - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю над настройкой веб-пакета для библиотеки, которую необходимо импортировать как в виде традиционных модулей (import niceFunction from 'library/niceFunction'), так и в виде тегов сценария с глобальными функциями (<script src="/library/niceFunction.js"></script>).

Я разработал конфигурацию webpack для обработки первого случая, но я не смог выяснить второй. Возможно ли это?

источник:

niceFunction.js:

function niceFunction(){
  return 'something';
}

export default niceFunction;

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

dist/niceFunction.js:

function niceFunction(){return 'something';}

РЕДАКТИРОВАТЬ:

Использование library и libraryTarget приближает меня.

webpack.config. js:

module.exports = {
    entry: glob.sync('./js/*.js').reduce((acc, path) => {
        let entry = path.replace(/\.js$/, '')
        entry = entry.replace(/^\.\/js\//, '')
        acc[entry] = path
        return acc
    }, {}),
    output: {
        path: path.resolve(__dirname, './dist/'),
        filename: '[name].js',
        library: ['libname', '[name]'],
        libraryTarget: 'var'
    },
};

вывод:

libName.niceFunction.default = function niceFunction() { return 'something' };

Я не хочу вызывать libName.niceFunction.default() в своем скрипте, я хочу использовать libName.niceFunction().

...