Я работаю над настройкой веб-пакета для библиотеки, которую необходимо импортировать как в виде традиционных модулей (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()
.