Я хочу регистрировать ошибки javascript на сервере, но трассировка стека бесполезна с минимизированным кодом JS. Поэтому я думал об использовании либо Getsentry, либо Rollbar, который показывает правильная трассировка стека с помощью sourcemaps
. Но я изо всех сил пытаюсь создать исходную карту в первую очередь.
я получаю эту ошибку
«Назначение (_build/js/app.js) не записано, поскольку файлы src были пусты».
Как только он правильно создаст исходную карту, возникнет другая проблема, т.е. rev
переименует файл. Мне также нужно оставить неминифицированный конкатенированный файл.
Ниже мой gruntfile.js (я удалил из него несколько битов).
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
jsFolders: {
src: [
'_build/js/ui',
'_build/js/vendor',
'_build/js/app',
'_build/js/*templates.js'
]
},
build: {
src: ['_build/**/*']
}
},
copy: {
build: {
files: [{
expand: true,
src: [
'index.html',
'img/**/*', //includes web.cofig also.
'img/**/*.svg',
'!img/**/*.psd',
'js/**/*', //includes web.cofig also.
'css/**/*', //includes web.cofig also.
'*.png',
'favicon.ico'
],
dest: '_build/'
}]
},
},
rev: {
option: {
algorithm: 'sha1',
length: 4
},
all: {
files: {
src: [
'_build/**/*.{js,css,eot,ttf,woff}'
]
}
}
},
useminPrepare: {
html: ['_build/index.html']
},
usemin: {
html: [
'_build/index.html'
],
css: [
'_build/css/**/*.css'
]
},
uglify: {
options: {
sourceMap: '_build/js/app.js.map',
},
js: {
files: {
'_build/js/app.js': ['_build/js/app.js']
}
}
},
cssmin: {
minify: {
expand: true,
cwd: '_build/css/',
src: '*.css',
dest: '_build/css/'
}
},
});
grunt.registerTask('build', [
'clean:build',
'handlebars',
'compass',
'autoprefixer',
'copy:build',
'useminPrepare',
'concat',
'uglify',
'cssmin',
'clean:jsFolders',
'rev',
'usemin',
]);
};
ОБНОВЛЕНИЕ
Попробовал решение @Andy, оно по-прежнему показывает ту же ошибку "Destination (_build/js/app.js) not written because src files were empty."
, а также говорит ниже при сборке
uglify:
{ options:
{ sourceMap: true,
sourceMapName: '_build/js/app.js.map' },
js: { files: { '_build/js/app.js': [ '_build/js/app.js' ] } },
generated:
{ files:
[ { dest: 'dist\\js\\app.js',
src: [ '.tmp\\concat\\js\\app.js' ] } ] } }
Не знаю, откуда у него dest
название. Моя выходная папка _build
.
ОБНОВЛЕНИЕ 2:
Обратитесь к ссылкам ниже для лучшего решения
https://stackoverflow.com/a/20574196/148271 https://github.com/gruntjs/grunt-contrib-uglify/issues/39#issuecomment-14856100