у нас есть три пакета, которые распространяются как модуль commonjs.
- Core // пакет содержит общий ресурс
- InternalExtend // пакет только для нашей команды
- ExternalExtend // пакет, который могут использовать другие команды
Мы написали приведенный выше код все в машинописном тексте, и у нас есть tsconfig, как показано ниже
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"lib": [
"dom",
"es2015",
"es2016",
"es5"
],
"declaration": true,
"sourceMap": true,
"removeComments": false,
"noImplicitAny": true,
"preserveConstEnums": true,
"outDir": "dist"
}
}
все хорошо, пока к нам не придет одна команда, которая использует AMD в своей кодовой базе и не сможет напрямую ссылаться на наш пакет.
Упоминание https://requirejs.org/docs/commonjs.html не помогает и спрашивает нас, можем ли мы распространять копию нашего пакета также в модуле AMD.
Я попытался получить еще один tsconfig, и единственное отличие - это изменить модуль commonjs на модуль amd. Но TSC не рад этому.
Есть ли способ, которым проект может компилироваться как в AMD, так и в Commonjs?