angular / tsickle

Tsickle — TypeScript to Closure Translator
MIT License
896 stars 111 forks source link

Create a tsickle release compatible with Typescript 4.x #1190

Closed bjornharvold closed 3 years ago

bjornharvold commented 4 years ago

Maybe bump peer dependencies

brad4d commented 4 years ago

Efforts to update tsickle to handle 4.0 are started, but it will be a few weeks at least.

Basher7 commented 3 years ago

tsickle@0.39.1 requires a peer of typescript@~3.9.5 but none is installed. You must install peer dependencies yourself. tsickle@0.39.1 is not compatible with typescript@4.0.3

alanllamas commented 3 years ago

having the same issue here, cant upgrade my library to angular 10.2.0 because of tsickle's typescript peer dependency

mprobst commented 3 years ago

qq, are you intentionally using tsickle, e.g. to put Closure Compiler annotations into your source code, or is it just an artefact of your project setup somehow?

alanllamas commented 3 years ago

Its part of the setup, the error was thrown after a npm update

IgorMinar commented 3 years ago

@alanllamas if you do not intentionally use tsickle but have tsickle in your package.json then it was likely added to your project by an error somehow. I suggest that you remove that dependency from your package.json. That should resolve the issue.

kyliau commented 3 years ago

@alanllamas if you do not intentionally use tsickle but have tsickle in your package.json then it was likely added to your project by an error somehow. I suggest that you remove that dependency from your package.json. That should resolve the issue.

You could also run npm ls tsickle or yarn why tsickle to find out why tsickle is in your dependency tree.

tachojelev commented 3 years ago

Any update on this?

brad4d commented 3 years ago

tsickle now supports TS 4.0 - and we're working on TS 4.1

Maybe this issue can be closed?

rrdelaney commented 3 years ago

I don't think we ever released the tsickle with TypeScript 4.0 compatibility on npm. Unless a project is using Closure Compiler, this warning shouldn't be showing up for Angular users though because they should not have tsickle in their package.json. Closing this as Igor gave a workaround in https://github.com/angular/tsickle/issues/1190#issuecomment-717486404.

bjornharvold commented 3 years ago

If you don't have tsickle in your Angular project, the project barfs. Recommend we re-open this issue unless I am missing something basic.

ERROR: Cannot find module 'tsickle'
Require stack:
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/ngc/create-emit-callback.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/ngc/compile-source-files.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/ng-package/entry-point/compile-ngc.transform.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/ng-package/entry-point/compile-ngc.di.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/ng-package/entry-point/entry-point.di.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/packagr.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/lib/commands/build.command.js
- /media/user/external/git/some-spa/node_modules/ng-packagr/public_api.js
- /media/user/external/git/some-spa/node_modules/@angular-devkit/build-angular/src/ng-packagr/index.js
- /media/user/external/git/some-spa/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js
- /media/user/external/git/some-spa/node_modules/@angular-devkit/architect/node/index.js
- /media/user/external/git/some-spa/node_modules/@angular/cli/models/architect-command.js
- /media/user/external/git/some-spa/node_modules/@angular/cli/commands/build-impl.js
- /media/user/external/git/some-spa/node_modules/@angular-devkit/schematics/tools/export-ref.js
- /media/user/external/git/some-spa/node_modules/@angular-devkit/schematics/tools/index.js
- /media/user/external/git/some-spa/node_modules/@angular/cli/utilities/json-schema.js
- /media/user/external/git/some-spa/node_modules/@angular/cli/models/command-runner.js
- /media/user/external/git/some-spa/node_modules/@angular/cli/lib/cli/index.js39m
- /media/user/external/git/some-spa/node_modules/@angular/cli/lib/init.js
- /media/user/external/git/some-spa/node_modules/@angular/cli/bin/ng
An unhandled exception occurred: Cannot find module 'tsickle'
Require stack:
bjornharvold commented 3 years ago
Angular CLI: 11.0.7
Node: 12.20.0
OS: darwin x64

Angular: 11.0.9
... animations, common, compiler, compiler-cli, core, elements
... forms, language-service, localize, platform-browser
... platform-browser-dynamic, router, service-worker
Ivy Workspace: Yes

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1100.7
@angular-devkit/build-angular   0.1100.7
@angular-devkit/core            11.0.7
@angular-devkit/schematics      11.0.7
@angular/cdk                    11.0.3
@angular/cli                    11.0.7
@angular/flex-layout            11.0.0-beta.33
@angular/material               11.0.3
@angular/youtube-player         11.0.3
@schematics/angular             11.0.7
@schematics/update              0.1100.7
ng-packagr                      11.0.3
rxjs                            6.6.3
typescript                      4.0.5
bjornharvold commented 3 years ago

All my project dependencies before anyone says that setting up a new Angular project does not have a dependency on tsickle. FYI ng-packagr dpendency comes in when you start creating libraries.

"dependencies": {
    "@angular/animations": "11.0.9",
    "@angular/cdk": "11.0.3",
    "@angular/common": "11.0.9",
    "@angular/compiler": "11.0.9",
    "@angular/core": "11.0.9",
    "@angular/elements": "11.0.9",
    "@angular/flex-layout": "11.0.0-beta.33",
    "@angular/forms": "11.0.9",
    "@angular/localize": "11.0.9",
    "@angular/material": "11.0.3",
    "@angular/platform-browser": "11.0.9",
    "@angular/platform-browser-dynamic": "11.0.9",
    "@angular/router": "11.0.9",
    "@angular/service-worker": "11.0.9",
    "@angular/youtube-player": "11.0.3",
    "@cloudinary/angular-5.x": "1.3.3",
    "@fortawesome/angular-fontawesome": "0.8.1",
    "@fortawesome/fontawesome-svg-core": "1.2.32",
    "@fortawesome/free-brands-svg-icons": "5.15.1",
    "@fortawesome/free-solid-svg-icons": "5.15.1",
    "@fortawesome/pro-light-svg-icons": "5.15.1",
    "@fortawesome/pro-regular-svg-icons": "5.15.1",
    "@ng-bootstrap/ng-bootstrap": "8.0.2",
    "@ng-select/ng-option-highlight": "0.0.6",
    "@ng-select/ng-select": "5.0.15",
    "@ngneat/content-loader": "6.0.0",
    "@ngneat/transloco": "2.20.0",
    "@ngrx/component": "10.1.2",
    "@ngrx/data": "10.1.2",
    "@ngrx/effects": "10.1.2",
    "@ngrx/entity": "10.1.2",
    "@ngrx/router-store": "10.1.2",
    "@ngrx/store": "10.1.2",
    "@ngrx/store-devtools": "10.1.2",
    "@paypal/checkout-components": "5.0.135",
    "@progress/kendo-angular-buttons": "5.5.2",
    "@progress/kendo-angular-charts": "4.2.1",
    "@progress/kendo-angular-common": "1.2.4",
    "@progress/kendo-angular-dateinputs": "4.4.1",
    "@progress/kendo-angular-dialog": "4.2.3",
    "@progress/kendo-angular-dropdowns": "4.4.1",
    "@progress/kendo-angular-excel-export": "3.1.6",
    "@progress/kendo-angular-grid": "4.8.4",
    "@progress/kendo-angular-inputs": "6.7.4",
    "@progress/kendo-angular-intl": "2.0.4",
    "@progress/kendo-angular-l10n": "2.0.3",
    "@progress/kendo-angular-layout": "5.1.0",
    "@progress/kendo-angular-menu": "2.0.5",
    "@progress/kendo-angular-notification": "2.1.3",
    "@progress/kendo-angular-pdf-export": "2.1.0",
    "@progress/kendo-angular-popup": "3.0.7",
    "@progress/kendo-angular-progressbar": "1.0.1",
    "@progress/kendo-angular-scheduler": "1.2.4",
    "@progress/kendo-angular-sortable": "3.0.6",
    "@progress/kendo-angular-upload": "6.1.0",
    "@progress/kendo-data-query": "1.5.4",
    "@progress/kendo-date-math": "1.5.1",
    "@progress/kendo-drawing": "1.9.3",
    "@progress/kendo-recurrence": "1.0.1",
    "@progress/kendo-theme-bootstrap": "4.27.0",
    "@progress/kendo-theme-material": "3.25.0",
    "@sentry/browser": "5.29.2",
    "@sentry/integrations": "5.29.2",
    "@webcomponents/custom-elements": "1.4.3",
    "angular-kawaii": "1.0.1",
    "angular-oauth2-oidc": "10.0.3",
    "angular-pipes": "10.0.0",
    "angular2-multiselect-dropdown": "4.6.9",
    "bootstrap": "4.5.3",
    "bs-stepper": "1.7.0",
    "cloudinary-core": "2.11.3",
    "cloudinary-video-player": "1.5.1",
    "compass-mixins": "0.12.10",
    "cryptocurrency-icons": "0.17.1",
    "date-fns": "2.16.1",
    "document-register-element": "1.14.10",
    "hammerjs": "2.0.8",
    "immutable": "4.0.0-rc.12",
    "ionicons": "5.3.0",
    "jw-bootstrap-switch-ng2": "2.0.5",
    "lodash-es": "4.17.20",
    "material-community-components": "10.0.0",
    "ng-animate": "1.0.0",
    "ng-qrcode": "4.1.0",
    "ngx-captcha": "8.0.1",
    "ngx-cookie-service": "11.0.2",
    "ngx-date-fns": "7.0.0",
    "ngx-duration-picker": "3.2.0",
    "ngx-sharebuttons": "8.0.5",
    "npm-font-open-sans": "1.1.0",
    "recaptcha-v3": "1.8.0",
    "rellax": "1.12.1",
    "rxjs": "6.6.3",
    "sortablejs": "1.13.0",
    "tslib": "2.1.0",
    "typeface-poppins": "1.1.13",
    "typeface-raleway": "1.1.13",
    "typeface-roboto": "1.1.13",
    "uuid": "8.3.2",
    "zone.js": "0.11.3"
  },
  "devDependencies": {
    "@angular-devkit/architect": "0.1100.7",
    "@angular-devkit/build-angular": "0.1100.7",
    "@angular-eslint/builder": "1.0.0",
    "@angular-eslint/eslint-plugin": "1.0.0",
    "@angular-eslint/eslint-plugin-template": "1.0.0",
    "@angular-eslint/schematics": "1.0.0",
    "@angular-eslint/template-parser": "1.0.0",
    "@angular/cli": "11.0.7",
    "@angular/compiler-cli": "11.0.9",
    "@angular/language-service": "11.0.9",
    "@ngneat/transloco-scoped-libs": "1.2.1",
    "@sentry/cli": "1.61.0",
    "@types/googlemaps": "3.43.2",
    "@types/hammerjs": "2.0.36",
    "@types/jasmine": "3.6.2",
    "@types/jasminewd2": "2.0.8",
    "@types/lodash": "4.14.167",
    "@types/lodash-es": "4.17.4",
    "@types/node": "12.6.3",
    "@types/rellax": "1.7.3",
    "@types/sortablejs": "1.10.6",
    "@types/stripe-v3": "3.1.23",
    "@types/webaudioapi": "0.0.27",
    "@typescript-eslint/eslint-plugin": "4.13.0",
    "@typescript-eslint/parser": "4.13.0",
    "api-ai-javascript": "2.0.0-beta.21",
    "eslint": "7.17.0",
    "eslint-plugin-ngrx": "1.13.0",
    "fuzzy": "0.1.3",
    "git-describe": "4.0.4",
    "inquirer": "7.3.3",
    "inquirer-autocomplete-prompt": "1.3.0",
    "jasmine-core": "3.6.0",
    "jasmine-spec-reporter": "6.0.0",
    "karma": "5.2.3",
    "karma-chrome-launcher": "3.1.0",
    "karma-coverage-istanbul-reporter": "3.0.3",
    "karma-jasmine": "4.0.1",
    "karma-jasmine-html-reporter": "1.5.4",
    "ng-packagr": "11.0.3",
    "ngx-build-plus": "11.0.0",
    "protractor": "7.0.0",
    "source-map-explorer": "2.5.2",
    "ts-node": "9.1.1",
    "tsickle": "0.39.1",
    "typescript": "4.0.5",
    "webpack-bundle-analyzer": "4.3.0"
  }
mprobst commented 3 years ago

@bjornharvold my understanding is that new Angular projects should not have a dependency on tsickle by default. If your project does, I believe that's a bug then. Can you file an issue with Angular?

We'll also do a release here to unblock people, but please do follow up with Angular upstream.

mprobst commented 3 years ago

Reopening this issue to track creating a tsickle release.

alan-agius4 commented 3 years ago

@bjornharvold my understanding is that new Angular projects should not have a dependency on tsickle by default. If your project does, I believe that's a bug then. Can you file an issue with Angular?

We'll also do a release here to unblock people, but please do follow up with Angular upstream.

Since Angular version 9, new and existing Angular projects are not dependent on tsickle. For existing projects we do have migrations to remove tsickle dependency. It's likely that the migration was not run in this particular case.

davyhuNew commented 3 years ago

Hi There,

I got this when try to create a new Angular project. I am using Angular CLI: 11.1.2, Node: 12.16.3 in windows 10

npm ERR! While resolving: student-angular@0.0.0 npm ERR! Found: typescript@4.1.3 npm ERR! node_modules/typescript npm ERR! dev typescript@"~4.1.2" from the root project npm ERR! peer typescript@"~4.0.0 || ~4.1.0" from @angular-devkit/build-angular@0.1101.2 npm ERR! node_modules/@angular-devkit/build-angular npm ERR! dev @angular-devkit/build-angular@"~0.1101.2" from the root project npm ERR! 2 more (@angular/compiler-cli, ng-packagr) npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer typescript@"~3.9.5" from tsickle@0.39.1 npm ERR! node_modules/tsickle npm ERR! peerOptional tsickle@"~0.39.0" from ng-packagr@11.1.3 npm ERR! node_modules/ng-packagr npm ERR! peerOptional ng-packagr@"^11.0.0 || ^11.1.0-next" from @angular-devkit/build-angular@0.1101.2 npm ERR! node_modules/@angular-devkit/build-angular npm ERR! dev @angular-devkit/build-angular@"~0.1101.2" from the root project

ikalennyy commented 3 years ago

I am getting a very similar if not the same problem when using the same CLI version

Tried every possible solution suggested out there. Uninstalled and installed NPM, CLI, even tried to uninstall and then install typescript ~3.9.5. Nothing helps.

npm ERR! While resolving: project@0.0.0 npm ERR! Found: typescript@4.1.3 npm ERR! node_modules/typescript npm ERR! dev typescript@"~4.1.2" from the root project npm ERR! peer typescript@"~4.0.0 || ~4.1.0" from @angular-devkit/build-angular@0.1101.2 npm ERR! node_modules/@angular-devkit/build-angular npm ERR! dev @angular-devkit/build-angular@"~0.1101.2" from the root project npm ERR! 2 more (@angular/compiler-cli, ng-packagr) npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer typescript@"~3.9.5" from tsickle@0.39.1 npm ERR! node_modules/tsickle npm ERR! peerOptional tsickle@"~0.39.0" from ng-packagr@11.1.3 npm ERR! node_modules/ng-packagr npm ERR! peerOptional ng-packagr@"^11.0.0 || ^11.1.0-next" from @angular-devkit/build-angular@0.1101.2 npm ERR! node_modules/@angular-devkit/build-angular npm ERR! dev @angular-devkit/build-angular@"~0.1101.2" from the root project