Опция динамической библиотеки с несколькими точками входа
Я нахожу пример опции webpack с несколькими точками ввода и UMD
Вот пример webpack.config.js в следующем примере:
var path = require("path");
module.exports = {
entry: {
alpha: "./alpha",
beta: "./beta"
},
output: {
path: path.join(__dirname, "js"),
filename: "MyLibrary.[name].js",
library: ["MyLibrary", "[name]"],
libraryTarget: "umd"
}
}
Мой вопрос заключается в том, как динамически конфигурировать filename
и library
. Я хочу:
-
filename
для ввода alpha
a.js
-
filename
для ввода beta
b.js
-
library
для записи alpha
как alpha
-
library
для входа beta
как beta
.
Итак, мне интересно, могу ли я настроить эти параметры через function
следующим образом:
var path = require("path");
module.exports = {
entry: {
alpha: "./alpha",
beta: "./beta"
},
output: {
path: path.join(__dirname, "js"),
filename: function(entryKey, entryValue) {
if (entryKey === 'alpha') return 'a.js';
if (entryKey === 'beta') return 'b.js';
},
library: function(entryKey, entryValue) {
if (entryKey === 'alpha') return 'Alpha';
if (entryKey === 'beta') return 'Beta';
},
libraryTarget: "umd"
}
}
Ответы
Ответ 1
Из webpack 3.1.0 вы можете экспортировать несколько конфигураций из webpack.config.js
Таким образом, вы можете попробовать следующее:
module.exports = [
{
entry: "./alpha",
output: {
path: path.join(__dirname, "js"),
filename: "a.js",
library: "Alpha",
libraryTarget: "umd"
}
},
{
entry: "./beta",
output: {
path: path.join(__dirname, "js"),
filename: "b.js",
library: "Beta",
libraryTarget: "umd"
}
},
]
Связанные документы: Экспорт нескольких конфигураций
Ответ 2
Вы можете установить имя так
var path = require("path");
module.exports = {
entry: {
Alpha: "./alpha",
Beta: "./beta"
},
output: {
path: path.join(__dirname, "js"),
filename: '[name].js',
library: '[name]',
libraryTarget: "umd"
}
}