Skip to content
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

fix(language-service): use single entry point for Ivy and View Engine #40967

Closed
wants to merge 1 commit into from

Commits on Feb 24, 2021

  1. fix(language-service): use single entry point for Ivy and View Engine

    Currently there are two entry points for the `@angular/language-service`
    package:
    
    - `@angular/language-service`
      This default entry point is for View Engine LS. Through the redirection
      of `main` field in `package.json`, it resolves to
      `./bundles/language-service.js`.
    - `@angular/language-service/bundles/ivy.js`
      This secondary entry point is for Ivy LS.
    
    TypeScript recently changed the behavior of tsserver to allow only package
    names as plugin names [1] for security reasons. This means the secondary
    entry point for Ivy LS can no longer be used.
    We implemented a quick hack in the module resolver (in the extension repo)
    to fix this, but the long term fix should be in `@angular/language-service`.
    
    Here, the `main` field in `package.json` is changed to `index.js`, and in the
    index file we conditionally load View Engine or Ivy based on the input config.
    This eliminates the need for multiple entry points.
    
    As part of this PR, I also removed all source code for View Engine and Ivy
    included in the NPM package. Consumers of this package should run the bundled
    output and nothing else. This would help us prevent an accidental import that
    results in execution of unbundled code.
    
    [1]: microsoft/TypeScript#42713
    kyliau committed Feb 24, 2021
    Configuration menu
    Copy the full SHA
    a2c9668 View commit details
    Browse the repository at this point in the history