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
Post a Comment