title: Non deterministic behavior on dependencies - nodejs
body: <p>I would solve a warning: when I run <code>yarn install</code> all dependencies are installed but I receive this warning:</p>
  
  <blockquote>
    <p>warning Pattern ["esprima-fb@~3001.0001.0000-dev-harmony-fb"] is
    trying to unpack in the same destination
    "/Users/Me/Library/Caches/Yarn/v1/npm-esprima-fb-3001.1.0-dev-harmony-fb-b77d37abcd38ea0b77426bb8bc2922ce6b426411"
    as pattern ["esprima-fb@~3001.1.0-dev-harmony-fb"]. This could result
    in a non deterministic behavior, skipping.</p>
  </blockquote>
  
  <p>If I delete node_modules folder and I run <code>yarn install</code> I don't receive the warning, when I re-execute <code>yarn install</code> I receive it again.
  I suppose the problem is in yarn-lock file.</p>
  
  <p><strong>package.json</strong></p>
  
  <pre><code>{
    "name": "n1",
    "version": "1.0.0",
    "description": "none ",
    "author": "none",
    "main": "src/index.js",
    "private": false,
    "engines": {
      "node": "&gt;=7.6",
      "yarn": "*"
    },
    "scripts": {
      "precommit": "yarn lint",
      "prestart": "yarn docs",
      "start": "cross-env NODE_ENV=production pm2 start ./src/index.js",
      "dev": "nodemon ./src/index.js",
      "lint": "eslint **/*.js --ignore-path .gitignore --ignore-pattern internals/scripts",
      "lint:fix": "yarn lint -- --fix",
      "lint:watch": "yarn lint -- --watch",
      "test": "cross-env NODE_ENV=test nyc --reporter=html --reporter=text mocha --timeout 20000 --recursive src/api/tests",
      "test:unit": "cross-env NODE_ENV=test mocha src/api/tests/unit",
      "test:integration": "cross-env NODE_ENV=test mocha --timeout 20000 src/api/tests/integration",
      "test:watch": "cross-env NODE_ENV=test mocha --watch src/api/tests/unit",
      "coverage": "nyc report --reporter=text-lcov | coveralls",
      "postcoverage": "opn coverage/lcov-report/index.html",
      "validate": "yarn lint &amp;&amp; yarn test",
      "postpublish": "git push --tags",
      "docs": "apidoc -i src -o docs",
      "postdocs": "opn docs/index.html"
    },
    "dependencies": {
      "bcryptjs": "^2.4.3",
      "blubird": "^0.0.1-security",
      "bluebird": "^3.5.1",
      "body-parser": "^1.18.2",
      "chalk": "^2.3.0",
      "color": "^2.0.1",
      "compression": "^1.7.1",
      "cookie-parser": "^1.4.3",
      "cors": "^2.8.4",
      "cross-env": "^5.1.3",
      "dotenv-safe": "^4.0.4",
      "espree": "^3.5.2",
      "esprima": "^4.0.0",
      "express": "^4.16.2",
      "express-validation": "^1.0.2",
      "express-winston": "^2.4.0",
      "helmet": "^3.9.0",
      "http-status": "^1.0.1",
      "joi": "^10.6.0",
      "jwt-simple": "^0.5.1",
      "lodash": "^4.17.4",
      "method-override": "^2.3.10",
      "moment": "^2.20.1",
      "moment-timezone": "^0.5.14",
      "mongoose": "^4.13.7",
      "morgan": "^1.9.0",
      "morgan-body": "^2.0.2",
      "mysql": "^2.15.0",
      "mysql2": "^1.5.1",
      "nedb": "^1.8.0",
      "node-geocoder": "^3.21.1",
      "only": "0.0.2",
      "passport": "^0.4.0",
      "passport-jwt": "^3.0.1",
      "pm2": "^2.9.1",
      "readline-sync": "^1.4.7",
      "request-promise": "^4.2.2",
      "sequelize": "^4.28.6",
      "serve-favicon": "^2.4.5",
      "winston": "^2.4.0",
      "yarn": "^1.3.2"
    },
    "devDependencies": {
      "apidoc": "^0.17.5",
      "chai": "^4.1.2",
      "chai-as-promised": "^7.1.1",
      "coveralls": "^2.13.1",
      "eslint": "^4.13.1",
      "eslint-config-airbnb-base": "^12.1.0",
      "eslint-plugin-import": "^2.8.0",
      "husky": "^0.14.3",
      "mocha": "^3.5.3",
      "nodemon": "^1.14.1",
      "nyc": "^11.4.1",
      "opn-cli": "^3.1.0",
      "sinon": "^3.3.0",
      "sinon-chai": "^2.14.0",
      "supertest": "^3.0.0"
    },
    "license": "MIT"
  }
  </code></pre>
  
  <p><strong>yarn-lock</strong>
  <a href="https://pastebin.com/vTrLHWff" rel="nofollow noreferrer">https://pastebin.com/vTrLHWff</a></p>