Хорошо, я понял это. Есть несколько вещей, которые вам нужно сделать, если вы хотите включить пользовательские правила TSLint в вашу библиотеку Angular.
Убедитесь, что они экспортируются в ваш public_api.ts
. Это гарантирует, что при запуске ng build <library-name>
компилятор TypeScript подберет эти файлы, скомпилирует их и поместит в папку dist
.
Настройте tsconfig.lib.json
для использования модулей не-es6 / es2015. Это то, что вызывало у меня много проблем. Похоже, что TSLint не поддерживает модули стиля es2015. Я переключил его на использование umd
. (Я также отметил, что commonjs
тоже хорошо работал.)
{
"compilerOptions": {
...
"module": "umd",
}
}
- В любом проекте, где установлена эта библиотека, вы можете подобрать свои правила, выполнив следующие действия. Отредактируйте ваш
tslint.json
и добавьте установленные tslint-правила node_modules в ваш tslint.json
. Затем добавьте ваши конкретные правила в список правил.
"rulesDirectory": [
// ...,
"node_modules/<my-package>/esm2015/lib/tslint-rules"
],
Затем добавьте настроенное правило следующим образом:
"rules": {
// ...,
"my-custom-rule": true,
// ...
}
- Кроме того, вы также можете настроить
tslint-default.json
в своей библиотеке и скопировать его в папку dist после запуска ng build
. Это должно добавить каталог правил и настройки по умолчанию для ваших пользовательских правил.
Затем, когда вы устанавливаете этот пакет в другом месте, вам нужно только расширить этот tslint-default.json
из установленной папки node_modules.
Надеюсь, это поможет любому, кто пытается создать библиотеку Angular и включает в себя пользовательские правила TSLint.