VisualStudioCode + gulp + browserify でブレークポイントが効かなかった問題(解決)
なかなか今更な環境ですが、ブレークポイントが効かなくて苦労してしたのでメモメモ。
環境
Windows 10
Visual Studio Code 1.19.1
gulp + browserify
Google Chrome
やりたいこと
以下のようなフォルダ構成にしたい。
デバッグ時にブレークポイントを設置したい。
+ .vscode
+ src
| + aaa.js
| + bbb.js
+ www
+ index.html
+ script
+ main.js
+ main.js.map
答え
browserify 時に Source Map に sourceRoot を追加すればうまく行きました。
gulpfile.js
// build
gulp.task( 'build', function() {
var browserify = require( 'browserify' );
var source = require( 'vinyl-source-stream' );
var buffer = require( 'vinyl-buffer' );
var sourcemaps = require( 'gulp-sourcemaps' );
browserify( folder.src + 'main.js', { debug: true } )
.bundle()
.pipe( source( 'main.js' ) )
.pipe( buffer() )
.pipe( sourcemaps.init( { loadMaps: true } ) )
.pipe( sourcemaps.write( './', { includeContent: false, sourceRoot: '../../' } ) ) // <===== ★ここ
.pipe( gulp.dest( folder.build ));
} );
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "chrome",
"request": "launch",
"file": "${workspaceRoot}/www/index.html",
"sourceMaps": true,
"runtimeArgs": [
"--allow-file-access-from-files",
"--remote-debugging-port=9222",
"--user-data-dir=${workspaceRoot}/chrometmp"
]
}
]
}
関係なかったこと
// build
gulp.task( 'build', function() {
var browserify = require( 'browserify' );
var source = require( 'vinyl-source-stream' );
var buffer = require( 'vinyl-buffer' );
var sourcemaps = require( 'gulp-sourcemaps' );
browserify( folder.src + 'main.js', { debug: true } )
.bundle()
.pipe( source( 'main.js' ) )
.pipe( buffer() )
.pipe( sourcemaps.init( { loadMaps: true } ) )
.pipe( sourcemaps.write( './', { includeContent: false, sourceRoot: '../../' } ) ) // <===== ★ここ
.pipe( gulp.dest( folder.build ));
} );
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "chrome",
"request": "launch",
"file": "${workspaceRoot}/www/index.html",
"sourceMaps": true,
"runtimeArgs": [
"--allow-file-access-from-files",
"--remote-debugging-port=9222",
"--user-data-dir=${workspaceRoot}/chrometmp"
]
}
]
}
関係なかったこと
VisualStudioCode + TypeScript でブレークポイントが効かなかった問題(解決)
これ関連だろうと当てをつけて探していたのですが関係ありませんでした。
最終的に outFiles は必要ありませんでした。
気づいた経緯
launch.json に以下を追加してログを出力しました。
{
"version": "0.2.0",
"configurations": [
{
...
"trace": "sm",
...
}
]
}
%TMP% フォルダに vscode-chrome-debug.txt が出力されたので中身とにらめっこしました。
SourceMap: sourceRoot: undefined
こんな行がありました。
以前きちんと動いていた、TypeScript を使った環境の main.js.map を覗いてみると
sourceRoot: "../../" が指定されていました。
今回の main.js.map には指定されてませんでした。
sourcemap sourceroot で検索すると、正解が見つかりました。
Author And Source
この問題について(VisualStudioCode + gulp + browserify でブレークポイントが効かなかった問題(解決)), 我々は、より多くの情報をここで見つけました https://qiita.com/ttoonnaa/items/0c6af4f95ee444752ad1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .