Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

require resolving package dependency's dependency instead of its own #654

Closed
hgezim opened this issue Dec 16, 2015 · 2 comments
Closed

require resolving package dependency's dependency instead of its own #654

hgezim opened this issue Dec 16, 2015 · 2 comments

Comments

@hgezim
Copy link
Contributor

hgezim commented Dec 16, 2015

My project relies on react-bootstrap and I have a test that fails with this error:

● Runtime Error
Error: Invalid argument must be an array
    at Object.all [as default] (/home/ubuntu/frontend/node_modules/react-bootstrap/node_modules/react-overlays/node_modules/react-prop-types/lib/all.js:12:11)
    at Object.<anonymous> (/home/ubuntu/frontend/node_modules/react-bootstrap/lib/ButtonGroup.js:39:45)
    at Loader._execModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:211:17)
    at Loader.requireModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:770:14)
    at Loader.requireModuleOrMock (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:800:19)
    at Object.<anonymous> (/home/ubuntu/frontend/node_modules/react-bootstrap/lib/index.js:61:21)
    at Loader._execModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:211:17)
    at Loader.requireModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:770:14)
    at Loader.requireModuleOrMock (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:800:19)
    at Object.<anonymous> (/home/ubuntu/frontend/src/javascript/components/FilePicker/Breadcrumbs.jsx:4:1)
    at Loader._execModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:211:17)
    at Loader.requireModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:770:14)
    at Loader._generateMock (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:248:34)
    at Loader.requireMock (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:682:45)
    at Loader.requireModuleOrMock (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:798:19)
    at Object.<anonymous> (/home/ubuntu/frontend/src/javascript/components/FilePicker/FilePicker.jsx:8:19)
    at Loader._execModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:211:17)
    at Loader.requireModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:770:14)
    at Loader.requireModuleOrMock (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:800:19)
    at Object.<anonymous> (/home/ubuntu/frontend/src/javascript/components/FilePicker/__tests__/FilePicker-test.js:24:18)
    at Loader._execModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:211:17)
    at Loader.requireModule (/home/ubuntu/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:770:14)
    at jasmine1 (/home/ubuntu/frontend/node_modules/jest-cli/src/testRunners/jasmine/jasmine1.js:233:16)
    at /home/ubuntu/frontend/node_modules/jest-cli/src/TestRunner.js:365:14

At /home/ubuntu/frontend/node_modules/react-bootstrap/lib/ButtonGroup.js:39:45 we have:

var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
var _reactPropTypesLibAll = require('react-prop-types/lib/all');
var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll);

var ButtonGroup = _react2['default'].createClass({
  ...
  propTypes: {
    block: _reactPropTypesLibAll2['default'](_react2['default'].PropTypes.bool, function (props) {
  ...

We can see that npm2 has installed react-prop-types in a fairly sane places:

$ pwd
/home/ubuntu/frontend
$ find . -name react-prop-types
./node_modules/react-bootstrap/node_modules/react-prop-types
./node_modules/react-bootstrap/node_modules/react-overlays/node_modules/react-prop-types

But react-bootstrap resolves /home/ubuntu/frontend/node_modules/react-bootstrap/node_modules/react-overlays/node_modules/react-prop-types/lib/all.js instead of /node_modules/react-bootstrap/node_modules/react-prop-types/lib/all.js when react-prop-types/lib/all is required.

Lastly, it doesn't seem that interop-require-default is doing anything to cause this:

$ cat /home/ubuntu/frontend/node_modules/react-bootstrap/node_modules/babel-runtime/helpers/interop-require-default.js 
"use strict";

exports["default"] = function (obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
};

I'm on npm2:

$ npm --version
2.14.15
@cpojer
Copy link
Member

cpojer commented Feb 18, 2016

This should definitely be fixed with #599.

@cpojer cpojer closed this as completed Feb 18, 2016
@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants