@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.