【发布时间】:2019-06-24 21:23:38
【问题描述】:
我有一个同时使用 Browserify 和 Uglify 的 Grunt 项目。以下是它的核心部分:
browserify: {
myapp: {
options: {
transform: ['babelify'],
browserifyOptions: {
debug: true
},
},
src: 'src/index.js',
dest: 'build/myapp.js'
}
},
uglify: {
options: {
sourceMap: true,
banner: bannerContent
},
target: {
src: 'build/myapp.js',
dest: 'build/myapp.min.js'
}
},
它似乎生成了一个myapp.min.js.map 文件,但它不再具有在浏览器化之前存在的源映射中的原始源。
以下是生成的源映射文件包含的内容:
{
"version":3,
"sources":[
"myapp.js"
],
"names":[
...
...
...
],
"mappings":".........",
"file":"myapp.min.js"
}
我已尝试对 Browserify 使用 uglifyify 转换,但生成的文件似乎不像 Uglify 任务那么小。
我也将所有依赖项都升级到了最新版本,但我无法解决这个问题。
【问题讨论】:
-
grunt-browserify不会创建外部 src 映射文件 - 请参阅 here。尝试:1)使用grunt-extract-sourcemap从myapp.js读取内联src映射并创建外部src映射文件(注意:在你当前的browserify任务之后和uglify任务之前运行这个任务)。 2) 在uglify任务中设置sourceMapIn选项以使用在步骤1 中创建的src 映射。 -
@RobC 当脚本通过 uglify 步骤被缩小时,生成的脚本文件是否仍然具有到源映射文件的正确映射?如果我理解正确的话,Unglify 步骤只会缩小 JS 文件,但不会更改源映射。
标签: gruntjs source-maps grunt-contrib-uglify grunt-browserify