-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
typeRoots option in tsconfig.json is not relative #397
Comments
Thank you for reporting this. I think that you're right - the typeRoots passed on the command-line to tsc should be relative to the Gruntfile, so grunt-ts ought to resolve the difference between the typeRoots values as specified in the tsconfig.json and the Gruntfile first. I think it is not currently doing that. I would love it if you wanted to submit a PR. That would be really helpful. Please take a look at the instructions on Contributing.md for some help on getting started/debugging. I think what you'd need to do is edit the Then you'd need to map the elements of co.typeRoots to apply the relative mapping, and then set the You'll want to use Let me know if you have any questions. If you don't want to or aren't able to complete this fix, no worries. I can take care of it. Thanks for the report!! |
I'm not sure why the slow tests aren't running properly. The file comparison it's doing generally only changes if the version of TypeScript is different. You seem to have the expected version of TypeScript installed. I did just notice that there is an issue with tslint in the latest code on master when I just did a fresh reclone. Did you just clone down the repo yesterday? |
By the way - your code seems to be mostly correct. The trick is that typeRoots is an array so you have to apply the path.relative to each element rather than the array itself. also note that you still have "out" and "outFile" in there. Please submit a PR with what you've done already and if you want to fix it, please do so. If you can't get it working, no worries, I'll just modify it. Thanks for contributing! |
Yes I just clone the repos this afternoon. I usually just fix no versions in my projects to avoid these kind of issues but I guess you cannot do that in a public package ppl will depend on (?) Indeed the code is incorrect I will fix and submit a PR (not before Monday tho') Thanks for the quick answers and for the package :) Cheers. |
You should be able to add a test. Do me a favor - on Monday please copy your code change to a different file and delete your entire grunt-ts repo and reclone it fresh. I just made a change to the file you were working on to support tsconfig extensions which is a new TypeScript 2.2 feature, and I also fixed an issue where the integration tests weren't working right so it's possible you were affected by that. Hopefully totally deleting everything and starting over will clear up any problems because I just tried it from scratch and it seems OK. (I have Node.js 7.5 on Windows 10 but it shouldn't really matter - the integration tests run on Node 0.10, and 4.x+ on Linux and they just all passed with the latest code in Travis.) There are three kinds of tests supported in grunt-ts. The first is the quick "nodeunit" style tests which are true unit tests. The second is the "command-line-only" tests which basically is a hook that intercepts what the command-line "would be" and then runs a function to validate it. That's the kind you want. Open the main Gruntfile.js and look for Thanks again for investigating this. Let me know if you need anything else. :-) |
I've gave it a try here: https:/beuted/grunt-ts
So I can't run the new test I wrote, (my code might be broken, I just can't tell). :( Any idea ? |
What editor are you using? Running I think this work looks good. Thank you!! Please submit a PR and I'll tweak anything that's necessary and hopefully I'll be able to figure out what is causing your trouble. I really appreciate it!! |
Done |
Fixed via #399 |
So is it possible to have a new release with this feature ? (if not I'll just use the github repo with the sha1) |
This is released in grunt-ts v6.0.0-beta.16 on npm. Thank you! |
Here is my configuration inside my Gruntfile
Here is
server/tsconfig.json
:When I run
ts:server
I've got:app.ts --sourcemap --removeComments --noImplicitAny --types "node,socket.io,seedrandom,voronoi" --typeRoots "../node_modules/@types,./typings/" --target ES5 --module commonjs
The generated route for app.ts is
./app.ts
and not../app.ts
since grunt-ts knows that theapp.ts
is at the root since the path is relative toserver/
.But for "typeRoots" in the generated command line typeRoots have the same path as in the tsconfig.json which is false, it should be:
-typeRoots "./node_modules/@types,./server/typings/"
I would like to have the same mechanism for the "typeRoots" array.
The issue is that, the tsconfig.json being used by IDE, changing the path in the tsconfig.json is breaking static type analysis in them!
I don't know if it's easy to implement I just wanted to ask if you would consider merging such a PR if have a look ?
The text was updated successfully, but these errors were encountered: