Я могу использовать библиотеки с узлом, например:
const API = require("api");
const Service = require("service");
однако, когда я связываю js-файл с веб-пакетом, он не работает, и мне нужно изменить способ, которым я требую:
const { API } = require("api");
const Service = require("service").default;
Это мой webpack.config.js
const path = require("path");
module.exports = {
entry: "./libs.js",
output: {
path: path.resolve(__dirname, "out"),
filename: "bundle.js",
library: "bundle",
libraryTarget: "var",
},
};
Это ожидаемо или я что-то упускаю?
Спасибо!
Ваша текущая конфигурация с libraryTarget: 'var'
предоставляет возвращаемое значение вашей точки входа как:
exports.default = /* return value of entry point */
Установите для параметра LibraryTarget значение 'commonjs', чтобы возвращаемое значение вашей точки входа было присвоено объекту экспорта, а не переменной по умолчанию.
module.exports = /* return value of entry point */
Если модулю назначен желаемый объект экспорта module.exports
, вы можете запросить его напрямую.
const path = require("path");
module.exports = {
entry: "./libs.js",
output: {
path: path.resolve(__dirname, "out"),
filename: "bundle.js",
library: "bundle",
libraryTarget: "commonjs",
},
};