fix(ngcc): sniff main
property for ESM5 format (#36396)
Previously, `main` was only checked for `umd` or `commonjs` formats. Now if there are `import` or `export` statements in the source file it will be deemed to be in `esm5` format. Fixes #35788 PR Close #36396
This commit is contained in:

committed by
Kara Erickson

parent
e2b221b8fa
commit
93cbef26c7
@ -425,6 +425,22 @@ runInEachFileSystem(() => {
|
||||
expect(getEntryPointFormat(fs, entryPoint, 'module')).toBe('esm5');
|
||||
});
|
||||
|
||||
it('should return `esm5` for `main` if the file contains import or export statements', () => {
|
||||
const name = _(
|
||||
'/project/node_modules/some_package/valid_entry_point/bundles/valid_entry_point/index.js');
|
||||
loadTestFiles([{name, contents: `import * as core from '@angular/core;`}]);
|
||||
expect(getEntryPointFormat(fs, entryPoint, 'main')).toBe('esm5');
|
||||
|
||||
loadTestFiles([{name, contents: `import {Component} from '@angular/core;`}]);
|
||||
expect(getEntryPointFormat(fs, entryPoint, 'main')).toBe('esm5');
|
||||
|
||||
loadTestFiles([{name, contents: `export function foo() {}`}]);
|
||||
expect(getEntryPointFormat(fs, entryPoint, 'main')).toBe('esm5');
|
||||
|
||||
loadTestFiles([{name, contents: `export * from 'abc';`}]);
|
||||
expect(getEntryPointFormat(fs, entryPoint, 'main')).toBe('esm5');
|
||||
});
|
||||
|
||||
it('should return `umd` for `main` if the file contains a UMD wrapper function', () => {
|
||||
loadTestFiles([{
|
||||
name: _(
|
||||
|
Reference in New Issue
Block a user