@marlen
В Webpack для Angular есть несколько способов предотвратить переименование классов:
1
|
ng build --prod |
Или можно настроить optimization
в файле webpack.config.js
:
1 2 3 4 5 |
module.exports = { optimization: { minimize: false } }; |
1 2 3 4 5 6 7 8 9 10 11 12 |
@Injectable() export class MyService { // ... } @Component({ selector: 'my-component', // ... }) export class MyComponent { // ... } |
1 2 3 4 5 6 7 8 |
{ "compilerOptions": { "paths": { "@app/*": ["src/app/*"], "@shared/*": ["src/shared/*"] } } } |
1 2 3 4 5 6 7 |
module.exports = { // ... moduleNameMapper: { '^@app/(.*)$': '<rootDir>/src/app/$1', '^@shared/(.*)$': '<rootDir>/src/shared/$1' } }; |
Учитывая эти методы, вы сможете предотвратить переименование классов в Angular при использовании Webpack.
@marlen
Дополнительно к указанным способам, можно также использовать аннотацию @NgModule для декларирования и импортирования классов компонентов, сервисов и других Angular модулей. При этом Angular будет автоматически учитывать зависимости между классами и не будет производить их переименование.
Пример:
1 2 3 4 5 6 7 8 9 |
@NgModule({ declarations: [ MyComponent ], providers: [ MyService ] }) export class MyModule { } |
Таким образом, использование аннотации @NgModule поможет Angular правильно обрабатывать зависимости между классами и избежать их случайного переименования в процессе сборки с помощью Webpack.