sails: sails fails with npm3 flatten deps

due to flatten dependencies sails fails to lift application. It can be easily fixed by replacing express/node_modules/connect with just connect in two places. but I do not know if it is right solution.

info: Starting app...

module.js:338
    throw err;
          ^
Error: Cannot find module 'express/node_modules/connect'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (...\node_modules\sails\lib\hooks\session\index.js:25:22)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at ...\node_modules\sails\lib\app\configuration\index.js:63:34
    at ...\node_modules\sails\node_modules\lodash\dist\lodash.js:3741:15
    at forOwn (...\node_modules\sails\node_modules\lodash\dist\lodash.js:2106:15)
    at Function.reduce (...\node_modules\sails\node_modules\lodash\dist\lodash.js:3738:9)
    at Configuration.defaultConfig (...\node_modules\sails\lib\app\configuration\index.js:58:18)

About this issue

  • Original URL
  • State: closed
  • Created 9 years ago
  • Comments: 25 (12 by maintainers)

Most upvoted comments

Confirmed working. Steps taken to verify:

  1. Upgrade to npm 3: npm i -g npm@latest
  2. Create a new app in new directory: sails new testapp
  3. Delete node_modules folder and change sails target in package.json to: github:balderdashy/sails#stable
  4. Install deps: npm i
  5. Generate a new API, just for fun: sails generate api user
  6. Run the app: node app.js
  7. Visit homepage, visit /user endpoint

No crashes.

I got the same error, as a workaround please go to the express folder in node_modules and run node install there.

For the sake of completeness, sails/lib/hooks/session/index.js line 25, and sails/lib/hooks/csrf/index.js line 80.