Use __dirname into class compiled in Typescript AMD

I'm looking for a solution to use __dirname (or equivalent) inside a TypeScript class compiled in AMD, __dirname doesn't exists there. And because it's typescript, I can't (or I don't know how) import module that contains uri, allowing me to get the uri.

I found the solution once, but I don't remember how and I can't find it again so far.

I took a look to this, but it's in pure javascript and I use typescript, I tried to import module, but I get a TS error.

https://stackoverflow.com/questions/9027429/how-to-use-nodejs-global-module-objects-in-requirejs-modules

Answers


One solution is to:

In app.js, create a global var:

__basePath = __dirname;

Then, in the AMD script, use __basepath + 'relativePathFromBasePath' to load the file.

I know I found another solution but I cannot remember how.


I do not use TypeScript, but on the basis of the TypeScript code I've seen and on the basis of what I know of RequireJS, I believe you should be able to access module.uri like this:

import module = require("module");
console.log(module.uri);

The name module is special. You could also use require.toUrl(<module name>) (that's Url as in URL whereas the variable above is uri as in URI) but it does not seem as useful as module.uri for this task. For one thing you'd have to include the module's name in the call.

module.uri may contain .., so it needs cleaning up. I understand your code to be running server-side, so in Node.js we'd call path.dirname(path.normalize(module.uri)).


Need Your Help

Remove one view's layout constraints but keep its subviews'?

ios objective-c xcode autolayout constraints

Working on a project in iOS 8 using storyboard and auto layout:

How to Disable the up and Down arrow keys for a silverlight listbox?

c# silverlight silverlight-3.0 listbox

I want to disable the navigation on press of UP and Down arrow keys in Silverlight.