Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用grunt usemin和rev_Javascript_Gruntjs_Sentry_Uglifyjs2 - Fatal编程技术网

Javascript 在使用grunt usemin和rev

Javascript 在使用grunt usemin和rev,javascript,gruntjs,sentry,uglifyjs2,Javascript,Gruntjs,Sentry,Uglifyjs2,我想将javascript错误记录到服务器上,但stacktrace对于缩小JS代码没有用处。因此,我想在sourcemaps的帮助下使用显示正确堆栈跟踪的或。但我首先要努力创建sourcemap 我犯了这个错误 “未写入目标(_build/js/app.js),因为src文件为空。” 一旦正确创建源映射,就会出现另一个问题,即rev将重命名该文件。我还需要保留未统一的连接文件 下面是我的gruntfile.js(我从中删除了一些内容) 更新 尝试了@Andy的解决方案后,它仍然显示相同的错误

我想将javascript错误记录到服务器上,但stacktrace对于缩小JS代码没有用处。因此,我想在
sourcemaps
的帮助下使用显示正确堆栈跟踪的或。但我首先要努力创建sourcemap

我犯了这个错误

“未写入目标(_build/js/app.js),因为src文件为空。”

一旦正确创建源映射,就会出现另一个问题,即
rev
将重命名该文件。我还需要保留未统一的连接文件

下面是我的gruntfile.js(我从中删除了一些内容)

更新


尝试了@Andy的解决方案后,它仍然显示相同的错误
“由于src文件为空,所以未写入目的地(_build/js/app.js)。
,并且在构建时也在下面说明

 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
name。我的输出文件夹是
\u build

更新2:
请参阅以下链接以获得更好的解决方案

丑陋的选项有:

sourceMap: true,
sourceMapName: 'path/to/name.map'
例如,在我的
grunfile.js
中,我使用
package.json
中的名称:

sourceMap: true,
sourceMapName: 'dist/<%= pkg.name %>-<%= pkg.version %>.map'
sourceMap:true,
sourceMapName:'dist/-.map'

要使sourcemaps与usemin流一起工作,没有简单的解决方案。 这是一个一年内没有解决的已知问题似乎:


useminPrepare正在将现有的uglify配置与其自己的配置合并,但嵌套在生成的
下。因此,丑八怪的这种配置适合我

grunt.initConfig({
  uglify: {
    generated: {
      options: {
        sourceMap: true
      }
    }
  }
});

我已经用实施您的解决方案的结果更新了这个问题。当我将输出文件夹改为
dist
而不是
\u build
时,这部分起到了作用。因此,似乎在
usemin
中有一些硬编码名称
dist
。剩下的问题是1。连接的未统一文件位于
.tmp
文件夹中,不在
js
文件夹中的min文件旁边。2.当我打开并看到生成的sourcemap时,它引用的是
app.js
文件,而不是
rev'ed
名称,即
.app.js
。现在试着绕过这些。如果.app.js文件底部没有显示reved名称,会不会有好运?那么,实际的解决方案是什么?谢谢。我有点搞不清楚这个丑东西是从哪里来的
grunt.initConfig({
  uglify: {
    generated: {
      options: {
        sourceMap: true
      }
    }
  }
});