grunt-wiedep
任务输出 Assets 的相对路径。相反,我需要绝对路径。
因此,我按照此处的建议重新配置了 replace
block :https://github.com/stephenplusplus/grunt-wiredep/issues/46
但是,在按照建议指定 replace
block 后,我将以下内容添加为我的脚本引用。如您所见,这是错误的。
<script src="/../../../public/vendors/jquery/dist/jquery.js"></script>
<script src="/../../../public/vendors/angular/angular.js"></script>
<script src="/../../../public/vendors/angular-resource/angular-resource.js"></script>
<script src="/../../../public/vendors/angular-route/angular-route.js"></script>
我想要的是这个:
<script src="/vendors/jquery/dist/jquery.js"></script>
<script src="/vendors/angular/angular.js"></script>
<script src="/vendors/angular-resource/angular-resource.js"></script>
<script src="/vendors/angular-route/angular-route.js"></script>
所以,我为我的替换 block 尝试了这个。注意RegEx
:
replace: {
js: '<script src="/{{filePath}}"></script>'.replace(/\.\.\/public/gi, ''),
css: '<link rel="stylesheet" href="/{{filePath}}" />'.replace(/\.\.\/public/gi, '')
}
但似乎 {{filePath}}
稍后会被替换,因此 RegEx
不会产生预期的结果。
处理这种情况的理想方法是什么?
最佳答案
在wiredep的gruntfile.js配置中添加以下内容:
ignorePath: '/../../../public'
这将从wiredep创建的路径的开头删除该部分。
例如类似这样的内容,加上对您的配置的任何调整:
wiredep: {
target: {
src: [
'/Views/**/*.html',
],
ignorePath: '/../../../public',
dependencies: true,
devDependencies: false,
}
},
关于gruntjs - 使用 grunt-wiredep 进行 Grunt + Bower 的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109777/