有没有办法以角度6以编程方式获取缩小的文件名?
示例:ng生成后,它会生成如下内容:
styles.ec7286a7eee694c180a3.css
在我的组件中,我希望能够获得该特定名称:
@Component({
selector: 'app-get-style',
templateUrl: './get-style.component.html',
styleUrls: ['./get-style.component.scss']
})
export class GetStyleComponent implements OnInit {
ngOnInit() {
//get the minified file name
// alert -> styles.ec7286a7eee694c180a3.css
}
}
答案 0 :(得分:3)
正如@Alexus在评论中指出的那样,文件名是在构建过程中生成的,因此除了在运行时检查所有css / js文件外,您无从知晓。
否则,您可以尝试在构建过程(ng build --output-hashing=none
)中删除输出哈希值
用于动态识别给定js / css文件的示例:
js文件
let nameToFind = 'styles';
//get all script tags (change to 'styles' if needed)
let scriptTags = [].slice.call(document.getElementsByTagName('script'));
//filter to get tag whose src attribute starts with styles
let targetElt= scriptTags.filter(c => c.hasAttribute('src') &&
c.getAttribute('src').startsWith(nameToFind))[0];
console.log(targetElt.getAttribute('src'));
css文件
let nameToFind = 'styles';
let linkTags = [].slice.call(document.getElementsByTagName('link'));
let targetElt= linkTags .filter(c => c.hasAttribute('href') &&
c.getAttribute('href').startsWith(nameToFind))[0];
console.log(targetElt.getAttribute('href'));