Coffeescript 源映射不引用原始文件,而是一个新的连接文件

Posted

技术标签:

【中文标题】Coffeescript 源映射不引用原始文件,而是一个新的连接文件【英文标题】:Coffeescript source map doesn’t reference original files, but a new concated file 【发布时间】:2017-04-20 08:38:49 【问题描述】:

我正在使用grunt-contrib-coffee 编译以下内容:

源 咖啡 test1.coffee test2.coffee test3.coffee

进入:

分布 js concated.js concated.js.map

这可行,但问题是在 dist/js 中生成了第三个文件,名为“concated.src.coffee”,这是 concated.js.map 引用的文件。这对我没有用,当我在浏览器中调试时,我希望源映射引用原始文件,而不是连接的咖啡文件。

我咕噜咕噜的咖啡配置:

module.exports =

compileWithMaps:
  options:
     sourceMap: true
  files: 'dist/js/concated.js': 'src/coffee/*.coffee’

关于如何使 sourcemap 引用原始文件而不是生成的连接咖啡文件的任何想法?

【问题讨论】:

【参考方案1】:

找到了让它发挥作用的方法!

我没有让 grunt-contrib-coffee 连接所有 .coffee 文件,而是更改了任务配置以单独编译所有文件并将它们全部放在一个文件夹中,如下所示:

glob_to_multiple:
    options:
        sourceMap: true
    expand: true
    flatten: true
    cwd: 'src/'
    src: ['**/*.coffee']
    dest: 'dist/compile-coffee'
    ext: '.js’

为了连接文件和相关的源图,我使用了grunt-concat-with-sourcemaps 并像这样配置了任务:

your_target:
    options:
        sourceRoot: '../../'
    files: 'dist/concat-js/concat.js': [ 'dist/compile-coffee/*.js’ ]

【讨论】:

以上是关于Coffeescript 源映射不引用原始文件,而是一个新的连接文件的主要内容,如果未能解决你的问题,请参考以下文章

NodeJs:Chrome 检查器可以映射源但无法在原始源上调试

页面加载后如何指定文件源映射?

CoffeeScript - 不允许在 Angular 表达式中引用 DOM 节点

如何使用 CoffeeScript 而不是 JSON?对于配置文件等

如何让 Rails 资产管道生成源地图?

更改TFVC映射文件夹而不再次下载代码