在Angular 4应用程序中,我通过npm收到的CSS文件很少(在node_modules文件夹中分别为 app-desktop.css 和 app-mobile.css )。应用加载后,我正在进行设备检测,并希望加载适当的CSS。
当前,我将css文件复制到资产文件夹中,并在onInit上的app.component中,将链接标签添加到引用资产文件夹的文档中。如下所示:
ngOnInit() {
const link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
if (deviceMobile()) {
link.setAttribute('href', './assets/css/app-mobile.css');
} else {
link.setAttribute('href', './assets/css/app-desktop.css');
}
const head = document.getElementsByTagName('head')[0];
head.insertBefore(link, head.firstChild);
}
我不想继续使用这种方法,因为每次发布新版本的CSS时都需要更新资产文件夹。
在应用启动过程中,是否有更好的方法从NodeModules文件夹动态注入CSS?