我coffeescript
用来做一些工作。它coffeescript
被编译成一个简单的快速应用程序js
并提供服务。grunt
nodejs
我的文件夹结构确实遵循普通文件夹结构,其中包含一个assets
用于要编译的内容的文件夹(coffeescript
, stylus
)和一个包含已编译内容的公用文件夹(js
, css
):
/
-- assets /
-- coffee /
-- lib /
-- util.coffee
-- main.coffee
-- styl
-- public /
-- css
-- js /
-- lib /
-- util.js
-- main.js
我的coffee
设置grunt
是:
coffee:
client:
options:
sourceMap: true
#sourceRoot: '??'
files: [
expand: true
cwd: 'assets/coffee/'
src: ['**/*.coffee']
dest: 'public/js/'
ext: '.js'
]
为了从资产目录中提供文件,我将其添加为我的快速应用程序中的静态目录:
app.use express.static(process.cwd() + '/assets')
Chrome 可以正确识别源地图,但咖啡文件的位置是错误的。例如,一个 url 看起来像http://localhost:3000/assets/coffee/main.coffee
. 当然,这会导致 404,因为assets
它是所有文件的根目录,coffee
并且由我的 express 应用程序提供服务。
所以我需要调整sourceRoot
变量。
- 如果我设置
sourceRoot
为sourceRoot: '/assets/'
,Chrome 会生成指向http://localhost:3000/assets/main.coffee
. - 如果我将它设置
sourceRoot: '/coffee/'
为链接是http://localhost:3000/coffee/main.coffee
. 这适用于assets/coffee/
. 未找到assets/coffee/
like子目录中的文件(生成的链接为)assets/coffee/lib/
http://localhost:3000/coffee/util.coffee
设置sourceRoot
选项似乎删除了文件夹结构?!
长问题短:什么是正确的设置sourceRoot
?如何保留文件夹结构?
我将此问题作为可能的错误报告提交:https ://github.com/jashkenas/coffee-script/issues/3075