我正在尝试编写一个grunt任务,它会更改脚本文件中的参考文件路径,以便在开发和生产环境中都能正常工作。
不幸的是,这并没有更新我所指的JSON文件的引用路径。
开发环境
angular.module('appModernizationApp')
.controller('DetailsCtrl', ['$scope', '$http', 'HRS',
'$location', '$routeParams',
'breadcrumbs', 'UtilitiesService',
function($scope, $http, HRS, $location, $routeParams, breadcrumbs, UtilitiesService) {
if (breadcrumbs.breadcrumbs.length >= 3) {
breadcrumbs.breadcrumbs.splice(1, 1);
}
$http.get('../../data/dropdown-data.json').success(function(data) {
console.log("Data:" + JSON.stringify(data.dropdownData));
});
在开发环境中,我必须使用 ../../ data / dropdown-data.json ,因为文件夹结构如下所示。此 JSON 文件在开发环境中的 scripts / controllers / details.js 下面的2个级别引用
如果我 ../ data / dropdown-data.json ,那么生产环境就可以了,因为压缩和连接后的文件夹结构如下所示。 JSON 文件的引用位于 scripts / scripts.js
下面的1级我的生产代码仍然引用文件@ location:
$http.get('../../data/dropdown-data.json').success(function(data) {
console.log("Data:" + JSON.stringify(data.dropdownData));
});
我想自动将其更改为 ../ data / dropdown-data.json
My Grunt Task:
filerev: {
dist: {
src: [
'<%= yeoman.dist %>/scripts/{,*/}*.js',
'<%= yeoman.dist %>/styles/{,*/}*.css',
'<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
'<%= yeoman.dist %>/styles/fonts/*'
]
}
},
usemin: {
html: ['<%= yeoman.dist %>/{,*/}*.html'],
css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
js: ['<%= yeoman.dist %>/scripts/{,*/}*.js'],
options: {
assetsDirs: [
'<%= yeoman.dist %>',
'<%= yeoman.dist %>/images',
'<%= yeoman.dist %>/styles'
],
patterns: {
js: [[/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g,
'Replacing references to images']]
}
}
},
有没有办法实现自动化?