David Sherret
cbb3f85433
feat(unstable/npm): support peer dependencies ( #16561 )
...
This adds support for peer dependencies in npm packages.
1. If not found higher in the tree (ancestor and ancestor siblings),
peer dependencies are resolved like a dependency similar to npm 7.
2. Optional peer dependencies are only resolved if found higher in the
tree.
3. This creates "copy packages" or duplicates of a package when a
package has different resolution due to peer dependency resolution—see
https://pnpm.io/how-peers-are-resolved . Unlike pnpm though, duplicates
of packages will have `_1`, `_2`, etc. added to the end of the package
version in the directory in order to minimize the chance of hitting the
max file path limit on Windows. This is done for both the local
"node_modules" directory and also the global npm cache. The files are
hard linked in this case to reduce hard drive space.
This is a first pass and the code is definitely more inefficient than it
could be.
Closes #15823
2022-11-08 14:17:24 -05:00
David Sherret
77fb26e143
fix(npm): add console
global for node environment ( #16519 )
...
This global is already isolated to node during type checking.
Closes #16518
2022-11-02 19:08:09 -04:00
David Sherret
a4d4acd1af
chore(npm): add explicit tests for module.exports
assignment with type checking ( #16435 )
2022-10-27 17:54:46 -04:00
David Sherret
bcfe279fba
feat(unstable/npm): initial type checking of npm specifiers ( #16332 )
2022-10-21 15:20:18 +00:00
Bartek Iwańczuk
048c06f84f
fix(npm): handle json files in require ( #16125 )
2022-10-01 22:21:19 +02:00
David Sherret
d677ba67f5
feat(npm): functionality to support child_process.fork ( #15891 )
2022-09-28 13:04:16 -04:00
David Sherret
716005a0d4
feat(npm): add flag for creating and resolving npm packages to a local node_modules folder ( #15971 )
2022-09-22 11:17:02 -04:00
Yoshiya Hinosawa
d7b27ed63b
fix(ext/node): fix builtin module module ( #15904 )
2022-09-17 20:35:32 +09:00
Bartek Iwańczuk
7b98282993
fix(npm): binary entrypoint for .js or no extension ( #15900 )
2022-09-14 10:41:47 -04:00
Bartek Iwańczuk
233d5422fd
fix(npm): use shim from deno_node crate for 'module' built-in module ( #15881 )
2022-09-12 18:11:32 -04:00
David Sherret
98454c1eb8
fix(npm): support cjs resolution of package subpath with package.json ( #15855 )
2022-09-12 15:47:54 -04:00
David Sherret
dee9f0acaf
fix(npm): align Node esm code importing cjs with Node ( #15838 )
2022-09-10 15:00:45 -04:00
David Sherret
3b0de03b59
fix(npm): remove export binding to match node ( #15837 )
2022-09-10 11:38:11 -04:00
Bartek Iwańczuk
6c179daff0
fix(npm): recursive translation of reexports, remove window global in node code ( #15806 )
...
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-09-08 22:01:48 +02:00
Bartek Iwańczuk
fc4025c878
fix(npm): add more context to errors when file doesn't exist ( #15749 )
2022-09-03 15:43:35 +02:00
Bartek Iwańczuk
adec4f575e
fix(npm): translate CJS to ESM with name clashes for files and dirs ( #15697 )
2022-08-31 00:31:59 +02:00
David Sherret
5f251b283b
fix(npm): prefer importing esm from esm ( #15676 )
2022-08-30 14:09:22 -04:00
Bartek Iwańczuk
54be07d05e
fix(npm): skip extracting pax_global_header from tarballs ( #15677 )
2022-08-30 17:15:41 +02:00
Bartek Iwańczuk
2851a98072
fix(npm): conditional exports with wildcards ( #15652 )
2022-08-29 19:15:20 +02:00
David Sherret
ec98d86d21
fix(npm): handle cjs re-exports with the same name as an export ( #15626 )
2022-08-26 14:34:35 -04:00
Yoshiya Hinosawa
9b324b1cf4
fix(ext/node): fix global in node env ( #15622 )
2022-08-26 23:39:05 +09:00
David Sherret
f583a7ebf4
chore(npm): add test for esm npm binary package ( #15609 )
2022-08-26 09:17:48 -04:00
David Sherret
376665d115
fix: avoid global declaration collisions in cjs ( #15608 )
...
* Use a default stack size * 2 in debug for Windows because swc using so much stack size. We should look into this more later though.
2022-08-25 20:24:18 -04:00
David Sherret
684aabbc25
feat: support subpaths in npm package references ( #15578 )
2022-08-24 11:25:32 -04:00
David Sherret
452df99222
feat(npm): support packages with multiple command names ( #15565 )
2022-08-23 22:01:21 -04:00
David Sherret
e7367044d9
feat: binary npm commands ( #15542 )
2022-08-23 10:39:19 -04:00
David Sherret
87f80ff6be
feat(unstable): initial support for npm specifiers ( #15484 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-08-20 11:31:33 -04:00