加载了CoffeeScript源地图,但未由Chrome获取源
我试图让我的CoffeeScript在Chrome中使用源地图。 我可以看到coffee
正在生成源映射,事实上Chrome的开发工具显示源映射文件是从本地HTTP服务器成功获取的。
然而,即使我能够在浏览器中手动GET
它, .coffee
文件本身也不会被获取。
我怀疑这可能与目录结构有关。 我为其提供HTTP的目录(使用简单的python服务器)如下所示:
./
index.html ("includes" 'lib/coffeedrag.js)
src/
coffeedrag.coffee
lib/
coffeedrag.js
coffeedrag.map
因此,当我在浏览器中打开index.html
时,会正确提取.js
和.map
文件。 .map
文件如下所示:
{
"version": 3,
"file": "coffeedrag.js",
"sourceRoot": "..",
"sources": [
"src/coffeedrag.coffee"
],
"names": [],
"mappings": "[ trimmed for brevity ... ]"
}
什么可以阻止Chrome获取coffeedrag.coffee
?
Chrome从文件中的一个小评论加载JS文件的源映射文件,如下所示:
/*
//@ sourceMappingURL=app.js.map
*/
通常,除非您指定--bare
标志,否则--bare
从CoffeeScript编译器中除去:http://coffeescript.org/#usage
例如在我的Gruntfile.coffee
我有:
module.exports = (grunt) ->
grunt.initConfig
coffee:
dev:
expand: true
cwd: 'assets/js/'
dest: '<%= coffee.dev.cwd %>'
ext: '.js'
src: [
'*.coffee'
'**/*.coffee'
]
options:
bare: true
sourceMap: true
然后打开CoffeeScript文件到Chrome:
如果我在代码中添加一个debugger
,则可以得到:
上一篇: CoffeeScript source maps loaded but sources not fetched by Chrome
下一篇: Will the source mapping in Google Chrome push to Error.stack