mirror of https://github.com/nodejs/node.git
module: runtime deprecate invalid package.json main entries
PR-URL: https://github.com/nodejs/node/pull/37204 Fixes: https://github.com/nodejs/node/issues/26588 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>pull/37502/head
parent
80098e605c
commit
76a073b67e
|
@ -2350,12 +2350,15 @@ with no performance impact since Node.js 10.
|
|||
### DEP0128: modules with an invalid `main` entry and an `index.js` file
|
||||
<!-- YAML
|
||||
changes:
|
||||
- version: REPLACEME
|
||||
pr-url: https://github.com/nodejs/node/pull/37204
|
||||
description: Runtime deprecation.
|
||||
- version: v12.0.0
|
||||
pr-url: https://github.com/nodejs/node/pull/26823
|
||||
description: Documentation-only.
|
||||
-->
|
||||
|
||||
Type: Documentation-only (supports [`--pending-deprecation`][])
|
||||
Type: Runtime
|
||||
|
||||
Modules that have an invalid `main` entry (e.g., `./does-not-exist.js`) and
|
||||
also have an `index.js` file in the top level directory will resolve the
|
||||
|
|
|
@ -352,7 +352,7 @@ function tryPackage(requestPath, exts, isMain, originalPath) {
|
|||
err.requestPath = originalPath;
|
||||
// TODO(BridgeAR): Add the requireStack as well.
|
||||
throw err;
|
||||
} else if (pendingDeprecation) {
|
||||
} else {
|
||||
const jsonPath = path.resolve(requestPath, 'package.json');
|
||||
process.emitWarning(
|
||||
`Invalid 'main' field in '${jsonPath}' of '${pkg}'. ` +
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// Flags: --pending-deprecation
|
||||
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
|
|
|
@ -29,8 +29,7 @@ const path = require('path');
|
|||
|
||||
const backslash = /\\/g;
|
||||
|
||||
if (!process.env.NODE_PENDING_DEPRECATION)
|
||||
process.on('warning', common.mustNotCall());
|
||||
process.on('warning', common.mustCall());
|
||||
|
||||
console.error('load test-module-loading.js');
|
||||
|
||||
|
@ -107,7 +106,16 @@ const d2 = require('../fixtures/b/d');
|
|||
assert.strictEqual(require('../fixtures/packages/index').ok, 'ok');
|
||||
assert.strictEqual(require('../fixtures/packages/main').ok, 'ok');
|
||||
assert.strictEqual(require('../fixtures/packages/main-index').ok, 'ok');
|
||||
|
||||
common.expectWarning(
|
||||
'DeprecationWarning',
|
||||
"Invalid 'main' field in '" +
|
||||
require.resolve('../fixtures/packages/missing-main/package.json') +
|
||||
"' of 'doesnotexist.js'. Please either fix that or report it to the" +
|
||||
' module author',
|
||||
'DEP0128');
|
||||
assert.strictEqual(require('../fixtures/packages/missing-main').ok, 'ok');
|
||||
|
||||
assert.throws(
|
||||
() => require('../fixtures/packages/missing-main-no-index'),
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue