mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
fix: improve suggestions and hints when using CommonJS modules (#26287)
Ref https://github.com/denoland/deno/issues/26225
This commit is contained in:
parent
82d13fd45b
commit
40b1c42138
8 changed files with 61 additions and 10 deletions
|
@ -287,14 +287,20 @@ fn get_suggestions_for_terminal_errors(e: &JsError) -> Vec<FixSuggestion> {
|
||||||
if let Some(msg) = &e.message {
|
if let Some(msg) = &e.message {
|
||||||
if msg.contains("module is not defined")
|
if msg.contains("module is not defined")
|
||||||
|| msg.contains("exports is not defined")
|
|| msg.contains("exports is not defined")
|
||||||
|
|| msg.contains("require is not defined")
|
||||||
{
|
{
|
||||||
return vec![
|
return vec![
|
||||||
FixSuggestion::info(
|
FixSuggestion::info_multiline(&[
|
||||||
"Deno does not support CommonJS modules without `.cjs` extension.",
|
cstr!("Deno supports CommonJS modules in <u>.cjs</> files, or when there's a <u>package.json</>"),
|
||||||
),
|
cstr!("with <i>\"type\": \"commonjs\"</> option and <i>--unstable-detect-cjs</> flag is used.")
|
||||||
FixSuggestion::hint(
|
]),
|
||||||
"Rewrite this module to ESM or change the file extension to `.cjs`.",
|
FixSuggestion::hint_multiline(&[
|
||||||
),
|
"Rewrite this module to ESM,",
|
||||||
|
cstr!("or change the file extension to <u>.cjs</u>,"),
|
||||||
|
cstr!("or add <u>package.json</> next to the file with <i>\"type\": \"commonjs\"</> option"),
|
||||||
|
cstr!("and pass <i>--unstable-detect-cjs</> flag."),
|
||||||
|
]),
|
||||||
|
FixSuggestion::hint("See https://docs.deno.com/go/commonjs for details"),
|
||||||
];
|
];
|
||||||
} else if msg.contains("openKv is not a function") {
|
} else if msg.contains("openKv is not a function") {
|
||||||
return vec![
|
return vec![
|
||||||
|
|
|
@ -11,6 +11,11 @@
|
||||||
"args": "run exports_error.js",
|
"args": "run exports_error.js",
|
||||||
"output": "exports_error.out",
|
"output": "exports_error.out",
|
||||||
"exitCode": 1
|
"exitCode": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"args": "run require_error.js",
|
||||||
|
"output": "require_error.out",
|
||||||
|
"exitCode": 1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,5 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
^
|
^
|
||||||
at [WILDCARD]exports_error.js:1:23
|
at [WILDCARD]exports_error.js:1:23
|
||||||
|
|
||||||
info: Deno does not support CommonJS modules without `.cjs` extension.
|
info: Deno supports CommonJS modules in .cjs files, or when there's a package.json
|
||||||
hint: Rewrite this module to ESM or change the file extension to `.cjs`.
|
with "type": "commonjs" option and --unstable-detect-cjs flag is used.
|
||||||
|
hint: Rewrite this module to ESM,
|
||||||
|
or change the file extension to .cjs,
|
||||||
|
or add package.json next to the file with "type": "commonjs" option
|
||||||
|
and pass --unstable-detect-cjs flag.
|
||||||
|
hint: See https://docs.deno.com/go/commonjs for details
|
||||||
|
|
|
@ -3,5 +3,10 @@ module.exports = {
|
||||||
^
|
^
|
||||||
at [WILDCARD]module_error.js:1:1
|
at [WILDCARD]module_error.js:1:1
|
||||||
|
|
||||||
info: Deno does not support CommonJS modules without `.cjs` extension.
|
info: Deno supports CommonJS modules in .cjs files, or when there's a package.json
|
||||||
hint: Rewrite this module to ESM or change the file extension to `.cjs`.
|
with "type": "commonjs" option and --unstable-detect-cjs flag is used.
|
||||||
|
hint: Rewrite this module to ESM,
|
||||||
|
or change the file extension to .cjs,
|
||||||
|
or add package.json next to the file with "type": "commonjs" option
|
||||||
|
and pass --unstable-detect-cjs flag.
|
||||||
|
hint: See https://docs.deno.com/go/commonjs for details
|
||||||
|
|
2
tests/specs/run/import_common_js/require_error.js
Normal file
2
tests/specs/run/import_common_js/require_error.js
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
const process = require("process");
|
||||||
|
const a = require("./a");
|
12
tests/specs/run/import_common_js/require_error.out
Normal file
12
tests/specs/run/import_common_js/require_error.out
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
error: Uncaught (in promise) ReferenceError: require is not defined
|
||||||
|
const process = require("process");
|
||||||
|
^
|
||||||
|
at [WILDCARD]require_error.js:1:17
|
||||||
|
|
||||||
|
info: Deno supports CommonJS modules in .cjs files, or when there's a package.json
|
||||||
|
with "type": "commonjs" option and --unstable-detect-cjs flag is used.
|
||||||
|
hint: Rewrite this module to ESM,
|
||||||
|
or change the file extension to .cjs,
|
||||||
|
or add package.json next to the file with "type": "commonjs" option
|
||||||
|
and pass --unstable-detect-cjs flag.
|
||||||
|
hint: See https://docs.deno.com/go/commonjs for details
|
|
@ -3,3 +3,11 @@ error: Uncaught (in promise) ReferenceError: require is not defined
|
||||||
console.log(require("./add").add(1, 2));
|
console.log(require("./add").add(1, 2));
|
||||||
^
|
^
|
||||||
at file:///[WILDLINE]main_mix.js:[WILDLINE]
|
at file:///[WILDLINE]main_mix.js:[WILDLINE]
|
||||||
|
|
||||||
|
info: Deno supports CommonJS modules in .cjs files, or when there's a package.json
|
||||||
|
with "type": "commonjs" option and --unstable-detect-cjs flag is used.
|
||||||
|
hint: Rewrite this module to ESM,
|
||||||
|
or change the file extension to .cjs,
|
||||||
|
or add package.json next to the file with "type": "commonjs" option
|
||||||
|
and pass --unstable-detect-cjs flag.
|
||||||
|
hint: See https://docs.deno.com/go/commonjs for details
|
||||||
|
|
|
@ -2,3 +2,11 @@ error: Uncaught (in promise) ReferenceError: require is not defined
|
||||||
const { add } = require("./add");
|
const { add } = require("./add");
|
||||||
^
|
^
|
||||||
at file:///[WILDLINE]
|
at file:///[WILDLINE]
|
||||||
|
|
||||||
|
info: Deno supports CommonJS modules in .cjs files, or when there's a package.json
|
||||||
|
with "type": "commonjs" option and --unstable-detect-cjs flag is used.
|
||||||
|
hint: Rewrite this module to ESM,
|
||||||
|
or change the file extension to .cjs,
|
||||||
|
or add package.json next to the file with "type": "commonjs" option
|
||||||
|
and pass --unstable-detect-cjs flag.
|
||||||
|
hint: See https://docs.deno.com/go/commonjs for details
|
||||||
|
|
Loading…
Reference in a new issue