{"action":"created","issue":{"url":"https://api.github.com/repos/eloquent/composer-npm-bridge/issues/21","repository_url":"https://api.github.com/repos/eloquent/composer-npm-bridge","labels_url":"https://api.github.com/repos/eloquent/composer-npm-bridge/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/eloquent/composer-npm-bridge/issues/21/comments","events_url":"https://api.github.com/repos/eloquent/composer-npm-bridge/issues/21/events","html_url":"https://github.com/eloquent/composer-npm-bridge/issues/21","id":388027503,"node_id":"MDU6SXNzdWUzODgwMjc1MDM=","number":21,"title":"Add support for Yarn","user":{"login":"ezzatron","id":100152,"node_id":"MDQ6VXNlcjEwMDE1Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/100152?v=4","gravatar_id":"","url":"https://api.github.com/users/ezzatron","html_url":"https://github.com/ezzatron","followers_url":"https://api.github.com/users/ezzatron/followers","following_url":"https://api.github.com/users/ezzatron/following{/other_user}","gists_url":"https://api.github.com/users/ezzatron/gists{/gist_id}","starred_url":"https://api.github.com/users/ezzatron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezzatron/subscriptions","organizations_url":"https://api.github.com/users/ezzatron/orgs","repos_url":"https://api.github.com/users/ezzatron/repos","events_url":"https://api.github.com/users/ezzatron/events{/privacy}","received_events_url":"https://api.github.com/users/ezzatron/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/eloquent/composer-npm-bridge/milestones/6","html_url":"https://github.com/eloquent/composer-npm-bridge/milestone/6","labels_url":"https://api.github.com/repos/eloquent/composer-npm-bridge/milestones/6/labels","id":3875478,"node_id":"MDk6TWlsZXN0b25lMzg3NTQ3OA==","number":6,"title":"Next release","description":"","creator":{"login":"ezzatron","id":100152,"node_id":"MDQ6VXNlcjEwMDE1Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/100152?v=4","gravatar_id":"","url":"https://api.github.com/users/ezzatron","html_url":"https://github.com/ezzatron","followers_url":"https://api.github.com/users/ezzatron/followers","following_url":"https://api.github.com/users/ezzatron/following{/other_user}","gists_url":"https://api.github.com/users/ezzatron/gists{/gist_id}","starred_url":"https://api.github.com/users/ezzatron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezzatron/subscriptions","organizations_url":"https://api.github.com/users/ezzatron/orgs","repos_url":"https://api.github.com/users/ezzatron/repos","events_url":"https://api.github.com/users/ezzatron/events{/privacy}","received_events_url":"https://api.github.com/users/ezzatron/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2018-12-06T01:03:41Z","updated_at":"2018-12-06T02:17:49Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2018-12-06T02:17:49Z","updated_at":"2018-12-06T02:38:23Z","closed_at":null,"author_association":"MEMBER","body":"Yarn is great. It would be nice to support it.\r\n\r\nInterestingly, `yarn install` features a [`--pure-lockfile`](https://yarnpkg.com/en/docs/cli/install#toc-yarn-install-pure-lockfile) flag, which seems perfect for usage with `composer-npm-bridge`. It's a pity that NPM doesn't support something similar.\r\n\r\nRelates to #20."},"comment":{"url":"https://api.github.com/repos/eloquent/composer-npm-bridge/issues/comments/444727592","html_url":"https://github.com/eloquent/composer-npm-bridge/issues/21#issuecomment-444727592","issue_url":"https://api.github.com/repos/eloquent/composer-npm-bridge/issues/21","id":444727592,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NDcyNzU5Mg==","user":{"login":"ezzatron","id":100152,"node_id":"MDQ6VXNlcjEwMDE1Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/100152?v=4","gravatar_id":"","url":"https://api.github.com/users/ezzatron","html_url":"https://github.com/ezzatron","followers_url":"https://api.github.com/users/ezzatron/followers","following_url":"https://api.github.com/users/ezzatron/following{/other_user}","gists_url":"https://api.github.com/users/ezzatron/gists{/gist_id}","starred_url":"https://api.github.com/users/ezzatron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezzatron/subscriptions","organizations_url":"https://api.github.com/users/ezzatron/orgs","repos_url":"https://api.github.com/users/ezzatron/repos","events_url":"https://api.github.com/users/ezzatron/events{/privacy}","received_events_url":"https://api.github.com/users/ezzatron/received_events","type":"User","site_admin":false},"created_at":"2018-12-06T02:38:23Z","updated_at":"2018-12-06T02:38:23Z","author_association":"MEMBER","body":"I just found out about [npm ci](https://docs.npmjs.com/cli/ci.html), which looks awesome.\r\n\r\nSo the behavior could be something like this:\r\n\r\n- Choose a \"driver\":\r\n  - Can be manually specified in `composer.json` `extra.npm-bridge.driver`\r\n  - Defaults to `\"yarn\"` if `yarn.lock` is present in the package root\r\n  - Falls back to `\"npm\"`\r\n- If using the Yarn driver:\r\n  - If the lock file is present, install packages with `yarn install --pure-lockfile`\r\n  - If the lock file is absent, install packages with `yarn install --no-lockfile`\r\n- If using the NPM driver:\r\n  - If the lock file is present, install packages with `npm ci`\r\n  - If the lock file is absent, install packages with `npm install --no-package-lock`"}}
{"actor":{"display_login":"ezzatron"}}