node.js - How can I debug a Yeoman generator KO (with typescript and gulp) Node JS project in Visual studio with Node JS Tools for visual studio -


i have created node js project in visual studio (2012 professional , 2013 community) ntvs , used yeoman generator create knockout spa app (using typescript option in generator setup).

now need decide file set startup file when debugging (hitting f5). suppose ./src/app/require.config.js because otherwise error require undefined.

when start debugging looks fine , console window appears message "debugger listening port 5858". when start localhost:5858, there no server/website.

i can start app in server on port no breakpoints being hit, not in startup file.

so questions are: - should set startup file? - how debug app in visual studio ntvs?


edit

i have determined when add new empty ntvs project creates server.js file with:

var http = require('http'); var port = process.env.port || 1337; http.createserver(function (req, res) {     res.writehead(200, { 'content-type': 'text/plain' });     res.end('hello world\n'); }).listen(port); 

setting startup file results in working debugging file.

how can still load require through require.config.js , start app startup.ts?

require.config.js

// require.js looks following global when initializing var require = {     baseurl: ".",     paths: {         "bootstrap": "bower_modules/components-bootstrap/js/bootstrap.min",         "crossroads": "bower_modules/crossroads/dist/crossroads.min",         "hasher": "bower_modules/hasher/dist/js/hasher.min",         "jquery": "bower_modules/jquery/dist/jquery",         "knockout": "bower_modules/knockout/dist/knockout",         "knockout-projections": "bower_modules/knockout-projections/dist/knockout-projections",         "signals": "bower_modules/js-signals/dist/signals.min",         "text": "bower_modules/requirejs-text/text"     },     shim: {         "bootstrap": { deps: ["jquery"] }     } }; 

startup.ts

import $ = require("jquery"); import ko = require("knockout"); import bootstrap = require("bootstrap"); import router = require("./router");  // components can packaged amd modules, such following: ko.components.register('nav-bar', { require: 'components/nav-bar/nav-bar' }); ko.components.register('home-page', { require: 'components/home-page/home' });  // ... or template-only components, can point .html file directly: ko.components.register('about-page', {   template: { require: 'text!components/about-page/about.html' } });  ko.components.register('grid-page', { require: 'components/grid-page/grid-page' });  // [scaffolded component registrations inserted here. retain feature, don't remove comment.]  // start application ko.applybindings({ route: router.currentroute }); 

edit 2

upon further investigation can start app server.js file startup file containing

var http = require('http'); var app = require('./src/app/startup.js'); var port = process.env.port || 1337; http.createserver(app).listen(port); 

but results in 'define not defined' error.

i think mixing server development , browser development. nodejs project meant run process on machine , act webserver amongst many other things. knockout spa app referring meant run in browser environment. yeoman generator , of te tools set part of build process knockout template (gulp example) need nodejs, required @ build time, not when running own code.

when want debug javascript in browser need locate main index.html file , open 1 in browser - ides have functions open page on built-in server , debug them directly (webstorm example), others might require open page in browser , attache javascript debugger. in visual studio should open in internet explorer , put breakpoint in js code in vs, i'm not if can directly open page vs , if need adjust ie settings (ask google, knows better me)


Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

php - Find a regex to take part of Email -