Отметьте это хранилище
Содержит рабочий пример настроенного Dojo + Webpack + TypeScript
Некоторые ключевые моменты:
Вам необходимо настроить DojoWebpackPlugin:
new DojoWebpackPlugin({
loaderConfig: require.resolve("./src/loader-config.js"),
locales: ["de", "en"],
environment: {
dojoRoot: "/",
production: env && env.production
}, // used at run time for non-packed resources (e.g. blank.gif)
buildEnvironment: { dojoRoot: "node_modules", build: true }
})
Вам необходимо настроить загрузчик для работы с плагином dojo-webpack.
loader-config.js:
function getConfig(env) {
const loaderConfig = {
parseOnLoad: false,
tlmSiblingOfDojo: true,
has: {
"foreign-loader": true
},
isDebug: false,
async: false,
blankGif: "./assets/images/blank.gif",
production: env.production,
packages: [
{
name: "dojo",
location: env.dojoRoot + "/dojo",
lib: "."
},
{
name: "dijit",
location: env.dojoRoot + "/dijit",
lib: "."
}
]
}
if (!env.build) {
loaderConfig.locale = dojoConfig.locale
}
return loaderConfig
}
//For build export function getConfig
if (typeof module !== "undefined" && module) {
module.exports = getConfig
} else {
//To use it directly in index.html return config object
getConfig({ dojoRoot: "/" })
}
Я использую dojo, установленный из npm, вы также можете пойти по этому пути, вместо того, чтобы хранить файлы dojo в папке ./src
.
В примере с репозиторием я использую TypeScript, так что есливы хотите загрузить собственные модули AMD из модулей TypeScript, вам нужно будет создать для них определения.
Надеюсь, это поможет.Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях, я постараюсь обновить свой ответ.