mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
ce7dc2be92
Adds support for running npm package lifecycle scripts, opted into via a new `--allow-scripts` flag. With this PR, when running `deno cache` (or `DENO_FUTURE=1 deno install`) you can specify the `--allow-scripts=pkg1,pkg2` flag to run lifecycle scripts attached to the given packages. Note at the moment this only works when `nodeModulesDir` is true (using the local resolver). When a package with un-run lifecycle scripts is encountered, we emit a warning suggesting things may not work and to try running lifecycle scripts. Additionally, if a package script implicitly requires `node-gyp` and it's not found on the system, we emit a warning. Extra things in this PR: - Extracted out bits of `task.rs` into a separate module for reuse - Added a couple fields to `process.config` in order to support `node-gyp` (it relies on a few variables being there) - Drive by fix to downloading new npm packages to test registry --- TODO: - [x] validation for allow-scripts args (make sure it looks like an npm package) - [x] make allow-scripts matching smarter - [ ] figure out what issues this closes --- Review notes: - This adds a bunch of deps to our test registry due to using `node-gyp`, so it's pretty noisy |
||
---|---|---|
.. | ||
adding_npm_dep_in_dynamic_import | ||
bin_entries_prefer_closer | ||
check_pkg_json_import | ||
check_prefers_non_types_node_pkg | ||
check_types_in_types_pkg | ||
cjs_internal_types_default_export | ||
conditional_exports | ||
conditional_exports_node_modules_dir | ||
dynamic_npm_resolution_failure | ||
es_module | ||
future_auto_install_no_package_json | ||
future_node_modules_dir_setting | ||
lifecycle_scripts | ||
local_dir_no_duplicate_resolution | ||
lock_file_integrity_failure | ||
lossy_utf8_module | ||
lossy_utf8_package_json | ||
lossy_utf8_script | ||
lossy_utf8_script_from_cjs | ||
npmrc | ||
npmrc_bad_registry_config | ||
npmrc_bad_token | ||
npmrc_basic_auth | ||
npmrc_deno_json | ||
npmrc_homedir | ||
npmrc_not_next_to_package_json | ||
npmrc_tarball_other_server | ||
require_resolve_bad_paths_global_cache | ||
unanalyzable_dynamic_import | ||
worker_shutdown_during_npm_import | ||
workers | ||
workspace_basic | ||
workspace_wildcards |