angular-meteor
angular-meteor copied to clipboard
"processFilesForTarget" function gets to process .ts files from node_modules
Hi, "angular-compilers" when compiling project processing .ts files from node_modules. It seems that not correct.
Steps to reproduce it:
- Get bare project from examples directory
- Add new package, which contains .ts file, for example
@types/meteor-collection-hooks
- Start project via
meteor npm start
- See errors
> @ start /home/iperevozchikov/Sources/test-pro
> meteor run
[[[[[ ~/Sources/test-pro ]]]]]
=> Started proxy.
[client]: ES2015 modules Compilation: 1038.347ms
node_modules/meteor-typings/1.4/test/test.ts (467, 8): Property '_localStorage' does not exist on type 'typeof Meteor'.
node_modules/meteor-typings/1.4/test/test.ts (468, 8): Property '_localStorage' does not exist on type 'typeof Meteor'.
node_modules/meteor-typings/1.4/test/test.ts (469, 8): Property '_localStorage' does not exist on type 'typeof Meteor'.
node_modules/meteor-typings/1.4/test/test.ts (737, 24): Type '(userId: string) => boolean' has no properties in common with type 'Matcher'.
[client]: TypeScript Files Compilation: 3153.892ms
[client]: HTML Files Compilation: 12.694ms \
[client]: SCSS Files Compilation: 3.157ms \
[server]: ES2015 modules Compilation: 555.509ms
node_modules/meteor-typings/1.4/test/test.ts (467, 8): Property '_localStorage' does not exist on type 'typeof Meteor'.
node_modules/meteor-typings/1.4/test/test.ts (468, 8): Property '_localStorage' does not exist on type 'typeof Meteor'.
node_modules/meteor-typings/1.4/test/test.ts (469, 8): Property '_localStorage' does not exist on type 'typeof Meteor'.
node_modules/meteor-typings/1.4/test/test.ts (737, 24): Type '(userId: string) => boolean' has no properties in common with type 'Matcher'.
[server]: TypeScript Files Compilation: 1101.867ms
[server]: HTML Files Compilation: 0.017ms -
=> Started MongoDB.
=> Started your app.
=> App running at: http://localhost:3000/
My environment:
-
meteor 1.6.1
-
[email protected]
I found that "processFilesForTarget" function exclude only angular based dependencies like rxjs, angular, tsickle, etc. Also was ignored section "exclude" from tsconfig and it's strange undocumented behavior. Because package would need to integrate into the typescript way of compilation, but don't ignore.
Yes, this is expected behavior which is not well-documented as you said. We added this feature to solve some problems with ES2015 modules which is not bundled for CommonJS, but it causes an ignorance for field exclude
in tsconfig.json
. This is about external dependency meteor-typescript
that we will investigate a solution for this. This post will be updated. Stay tuned!
Thank you for your collaboration!
Hi @ardatan . I composed the list of errors in my app and it was be next:
- node_modules/ng2-material-dropdown/demo/home/components/dropdown-container.ts;
- node_modules/meteor-typings/1.4/test/test.ts;
- node_modules/ng-lazyload-image/src/lazyload-image.module.ngfactory.ts;
- node_modules/sift/test.ts.
Errors above were perfect be grouped into 3 categories:
- test
- demo
- src
If the src category does not look unambiguous, because it may have really important information for your app.
But others categories may be excluded without any problem for your app by rules based on detecting demo and tests contents.
Also, would be great to enable some custom section in tsconfig.json
for the user-based excluding rules, for example
angularTypescript: {
exclude: [
"node_modules/**/*/test.ts"
]
}