├── .appveyor.yml
├── .editorconfig
├── .env.example
├── .eslintignore
├── .gitattributes
├── .github
└── issue_template.md
├── .gitignore
├── .travis.yml
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── TODO.md
├── assets
├── link-icon-chrome-webstore.png
├── link-icon.png
├── manifest.json
└── options.html
├── lib
├── app.js
├── options
│ ├── components
│ │ └── index.js
│ ├── options.js
│ ├── page.js
│ └── storage.js
├── permalinker.js
└── user-repo-branch.js
├── package.json
├── scripts
└── chrome-launch.js
├── test
├── fixtures
│ ├── PR_review_comment
│ │ └── page.html
│ ├── already_permalink
│ │ └── page.html
│ ├── badge
│ │ └── page.html
│ ├── do_not_permalink_issue_comment_self-links
│ │ └── page.html
│ ├── eslump_readme
│ │ └── page.html
│ ├── fall_back_to_master_branch
│ │ └── page.html
│ ├── gist
│ │ └── page.html
│ ├── gist_comments
│ │ └── page.html
│ ├── issue_comment
│ │ └── page.html
│ ├── markdown_blob
│ │ └── page.html
│ ├── markdown_internal_link
│ │ └── page.html
│ ├── milestones_url
│ │ └── page.html
│ └── search_links
│ │ └── page.html
├── permalinker.js
└── user-repo-branch.js
├── webpack.config.js
└── yarn.lock
/.appveyor.yml:
--------------------------------------------------------------------------------
1 | # Test against this version of Node.js
2 | environment:
3 | nodejs_version: "8"
4 | GITHUB_TOKEN:
5 | secure: Mh3yVwUwbcHCUYF2NkA+Qs84kuijuUswzz6QgXBw7/HvNiSM0EAHVreUeDlqZCh3
6 |
7 | cache:
8 | - node_modules
9 | - "%LOCALAPPDATA%\\Yarn"
10 |
11 | # Install scripts. (runs after repo cloning)
12 | install:
13 | # Get the latest stable version of Node.js or io.js
14 | - ps: Install-Product node $env:nodejs_version
15 | - appveyor-retry choco install zip
16 | # install modules
17 | - yarn
18 |
19 | # Post-install test scripts.
20 | test_script:
21 | # Output useful info for debugging.
22 | - node --version
23 | - npm --version
24 | # Make sure build works on Windows
25 | - npm run package-all
26 | # run tests
27 | - appveyor-retry call npm test
28 |
29 | # Don't actually build.
30 | build: off
31 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 |
8 | [*]
9 |
10 | # Change these settings to your own preference
11 | indent_style = space
12 | indent_size = 2
13 |
14 | [*.json]
15 | indent_size = 2
16 |
17 | # We recommend you to keep these unchanged
18 | end_of_line = lf
19 | charset = utf-8
20 | trim_trailing_whitespace = true
21 | insert_final_newline = true
22 |
23 | [*.md]
24 | trim_trailing_whitespace = false
25 |
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | GITHUB_TOKEN=
2 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | test/fixtures/*/* binary
3 | packages/blob-reader/fixtures/* linguist-documentation
4 |
--------------------------------------------------------------------------------
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 |
5 |
6 | **Browser name:**
7 |
8 | **Browser version:**
9 |
10 | **OctoPermalinker version:**
11 |
12 | **URL number where issue occurs:**
13 |
14 | **Expected behavior:**
15 |
16 | **Actual behavior:**
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .env
2 |
3 | node_modules
4 | npm-debug.log
5 |
6 | dist/
7 | out/
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | node_js:
4 | - 7
5 | - node
6 | cache:
7 | yarn: true
8 | directories:
9 | - node_modules
10 | before_script:
11 | - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then yarn upgrade && git diff --exit-code;
12 | fi
13 | - npm run package-all
14 | script:
15 | - travis_retry npm test
16 | deploy:
17 | - provider: script
18 | script: npm run release
19 | skip_cleanup: true
20 | on:
21 | branch: master
22 | tags: true
23 | env:
24 | global:
25 | - EXTENSION_ID=bcnkgcoohaaaclieohdlkphgfinkgbfm
26 | - secure: WMMEr2jhFsS8e/LFcJp5CfZEWuV4hDPHS844PzfZSmr6OL/k1C/zoUH2TQC8fB1imj9wtQd4uKekuOmn6pIXAqKGYHUcKfqqEh+DxuhvjC/IHtLXANlsHReDHDuPE9CkdtRPOQgU3D97NmFZzgb1whDDA1zZxVS8wTON9b/7IWcXXh9L2WU/m5pJzafI6PVkBWzWqOpnmOrYulP26PvtBgcc2HoqDMM3C4Jk9jkbJADhlBUHCrhCb3zDC6YJNYRps0XHkH2k1lkVjz8hiv4pL6fk8zIMUIaKL6MmYXGaNwaEDHvDD6wRqpCgUdqSUFqwoe3UlxehpWP3UtJN8Chd/79c357GboiQ6X/c21sKLhYHaHKlp5nd1MuoRdW3p9GaOfQvnaR2p1Te+6+n9qEn4wzpmmd4shsf034T0Do4KVbotknzDvj1xHkxSmEQD0gBwEjc5t7H8hpVgJ7K9E1qjP0PgVd9U07ZRxHC8q5641dEUJPqtHLD2Uky2hzx4Ox7ZdiN/CYEZzwdHaI4efBiyqCQulvtmxHn+t/TBn4Ki9MmCfT9NgJ0fcfSooFmYxNmA6X/MyzwLMNIaHwCbZsM1ZGJeB2Bcv3RM/VJIMuE0yRGuQcnPhFAcz9r+msEnjEn/qXcy9efDNzQAB8ywna/FZGcjRTn4w2r9hAxl9HRm30=
27 | - secure: Yse5gX5KErF8VwthtF2LgWqli4Xg6tZbxjSzXRLrbsjZ9gfS0QeXN+OeojYEEXrvYd1z2I1nFYCxcY1gmVuMMSB5L2g66En0zOy9AcR81UOC5OoiTnAT0DuuLVulROM9U2FO/vBrPDgw1ZKdTXLOtRlLJa2XMxtsMHA03q0WcubeEj45XsZBnAcT1Jhy6uqknlHCAZR6tF709d9XJuNBu8X9tBYCbXKq4YISQeTb9SwftDcZLt8/jwyHwPSFPKl5xHt4AkFGgXHMcF/7EuDo3u1crN9g7xl1XTMTROdumQXy/OFkYwYohfmiai5cyPo9UXg6Pw8yeed6TVinH3IElAPkib+H642MKM9S6kKBVAq0WDg5n+XGl+8/mf9oO3ozwy5s+hkIaru5TuwdBu1PAIso9KIPb7b258j6RXQ7BstsvBVOTQQxqGCop+DCn5ANAFJqQtdjcn07GJlVUoW5/8IzwoLXuntzjnsMGVLncsv6C2ropDHyXEH+tdz4+sNVa2PHbmmEuEDttYzgxv2CYvnZffxzvXt3ckKcqrm0HYvA3KbsrPJ0/aYU449CzBT5tYDZ92F/lckgs8DJhXe7sxuM9YuTBM/YNqOUqr9sRldg5j2/M4Ty8ropoUbqnu+7c/LywiVUIBIcj5xYrGphgofNO9UQsTDWy/fFoLRY14I=
28 | - secure: LaVnrsGk9PeHL2Tls4SMKqFErJEtOEUoxQimCoSSUpHI/q9+GG9pjKzfQIJ25ejFuhCcJumH0c0fi8eYgFIZ3p4k5boIr1v5A9SH9G0nDEIdTwqZZMcwtMTQhEAn64V3YDZwcgcIL9UbNd0bCwiyV/1A8IfRYWWtFQGkC6S5cxWqUge+FtGoyr6PzXA0xGG6WhoKyuXvQw/He9R8hdgXouURpP+LA1/JYVNVMMEDrB3AViMdvpLJHoNCmQJJ2rH8wsbtlEpco2P5Yqh2kKb6Fd84sLao3rGgy6tlBL6tzUEIQvK2NBxsa6vdgadvWOqfDrqx1SW/R8oXXtRR2zmU0xD+msBjqw2gAHo9UAdNzlyn70ykaSxOIjjWoF6akHzWHaE0Gbql5QC7c6lJ4wM54hPLCjTHtN3mFUD++gZ6t0UZnhhEQdfnhcsVOqeYkzh4tK0VCJv2VWaTAJ1RpVq/5XKw9TbLTD/37WBoOo/4oqODubAvZdGPFEGMwFwyRjIljEmcI7l1PaeIWZJN3pIFi+ea1XR2sAeMHe5/9zbrtPrfikSbOhoCi8hMq/OdJTIwBwm3/wPyhxhIVcU8JZaJqBZY1E3sIFk+FIg0UZoLtKrKp5qMDBAriDf+mMCg0+//LTinSrRf7e/l+U/JOWHpjSw+uEkrmhU0S4e8bvnhBqg=
29 | - secure: srEiojxHc60jwdShTSLWHl6K0eXSBDdWInBUHdXGOvf/crZsJu+Kgpb0HmOCfU0LUKjyI63UrRbLzDAU/RBUJCj4VHNkb0srKazUimanF52MWBD0AP+d1MgPSVy68bwpex0V4ED0OVf/7DRBj2m4ePsalgWQ/RzbgAuCO8cfKdeda3Y+S2Xbj9pkbKCqEq3WNiDZrPTJY6QsNepdtfHAjAYXyYshpw73F9TTIXkLXb9NUfD3PP1VngS5WTq3flEHbj4KvroPjTbS58B6qe0Yqc8HRcZI6c+Q0QtbuMfApNid4ge1SegobduldFto2HFofttYZ+v/SnW+wLKIrhohm0omyYV+H/pTuvzokkYrvqkTZec+7c5bK32yFQf5y0KDnmAsYws64i7g7mMH0ECwY6ckzepbKWXZg8NusIYUlbebCClj31Tkeze+cXWM12eRHoOYaqA3REoQyFs8x06F2K0c4UH5ermGatTgTXnnYFkxtYxfzeYZzsFdhDRPcetuE7xZuNYjY2lMGpxlwtDnUEn1iW8snBeB7d/gOKYgUjV+e57KznC8/niKfV6CG0INwsxAqbYyES6MmObh7V7wrUy4zYdZoRLfFOM0CMrIWWxEXvVnkYvNi8CHCCQFZCRtNe2c3dAtc8jX2VHTBUCBEjAOrOnPLxYhuzHp47zloU4=
30 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 |
2 | # Contributing
3 |
4 | First off, thanks for taking the time to contribute! :tada: :+1:
5 |
6 | # Developer Guide
7 |
8 | ## Quick Start
9 |
10 | To build and run the extension follow these steps.
11 |
12 | 1. Clone the repository.
13 | 1. Make sure [Yarn](https://yarnpkg.com/docs/install) is installed.
14 | 1. Run `yarn install` to setup the project and install all required dependencies.
15 | 1. Build and load the extension:
16 | * Firefox (Quickstart):
17 | 1. `npm run firefox-open`
18 | * Chrome (Quickstart):
19 | 1. `npm run chrome-open`
20 | * Chrome (Long Version):
21 | 1. To build the extension once run `npm run chrome-build` or `npm run chrome-watch` during development.
22 | 1. Load extension https://developer.chrome.com/extensions/getstarted#unpacked.
23 |
24 | ## Pull Request Guidelines
25 |
26 | - Please check to make sure that there aren't existing pull requests attempting to address the issue mentioned. We also recommend checking for issues related to the issue on the tracker, as a team member may be working on the issue in a branch or fork.
27 | - Non-trivial changes should be discussed in an issue first
28 | - Develop in a topic branch, not master
29 | - Lint the code by `npm run lint`
30 | - Add relevant tests to cover the change
31 | - Make sure test-suite passes: `npm test`
32 | - Squash your commits
33 | - Write a convincing description of your PR and why we should land it
34 |
35 | ## Release Checklist
36 |
37 | - Run [`npm version patch`](https://docs.npmjs.com/cli/version) to update the version number. Use `minor` or `major` instead of `patch` if needed (see [semver.org](http://semver.org/) for details).
38 | - Open a [pull request](https://github.com/josephfrazier/octopermalinker/pulls) with the new version.
39 | - Once the pull request is merged in, tag the resulting commit as `vX.Y.Z` (where `X`, `Y`, `Z` are the major, minor, and patch versions).
40 | - Push the tag to GitHub. This will trigger Travis CI to create a new [GitHub Release](https://github.com/josephfrazier/octopermalinker/releases) and submit the new Chrome extension to the Chrome Web Store. See [.travis.yml](https://github.com/josephfrazier/octopermalinker/blob/master/.travis.yml) for details.
41 | - Submit `firefox-octopermalinker-X.Y.Z.zip` from the [GitHub Release](https://github.com/josephfrazier/octopermalinker/releases) to [addons.mozilla.org](https://addons.mozilla.org/en-US/developers/addon/octopermalinker/versions#version-upload). Be sure to include the `Source code (zip)` file from the release as well.
42 | - Submit `opera-octopermalinker-X.Y.Z.zip` from the [GitHub Release](https://github.com/josephfrazier/octopermalinker/releases) to [addons.opera.com](https://addons.opera.com/developer/package/226344/?tab=versions). Afterwards, go to the [Conversation tab](https://addons.opera.com/developer/package/226344/?tab=conversation), add a link to the `Source code (zip)` file and copy/paste the build instructions from previous releases.
43 | - Update release notes at https://github.com/josephfrazier/octopermalinker/releases/tag/vX.Y.Z. You can find a list of changes since the previous release at https://github.com/josephfrazier/octopermalinker/compare/vA.B.C...vX.Y.Z, where `A.B.C` is the previous version number.
44 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017–present Joseph Frazier
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # OctoPermalinker [](https://travis-ci.org/josephfrazier/octopermalinker) [](https://ci.appveyor.com/project/josephfrazier/octopermalinker)
2 |
3 | OctoPermalinker is a browser extension that searches GitHub comments/files for links to files on branches, and adds a link to where the branch pointed when the comment/file was made/updated. This helps you avoid following a link that was broken after being posted. For context, here's some discussion about broken GitHub links: [Don't link to line numbers in GitHub](https://news.ycombinator.com/item?id=8046710).
4 |
5 | # Demo
6 |
7 | ## Before
8 | 
9 |
10 | ## After
11 | 
12 |
13 | # Install
14 |
15 | OctoPermalinker is available from the [Chrome Web Store].
16 | If you use Firefox, install [Chrome Store Foxified] first.
17 |
18 | Alternatively, you can build and install OctoPermalinker locally by following the [Quick Start] section of the Contributing guide.
19 |
20 | [Chrome Web Store]: https://chrome.google.com/webstore/detail/octopermalinker/bcnkgcoohaaaclieohdlkphgfinkgbfm
21 | [Chrome Store Foxified]: https://addons.mozilla.org/en-US/firefox/addon/chrome-store-foxified/
22 | [Quick Start]: ./CONTRIBUTING.md#quick-start
23 |
24 | # Features
25 |
26 | ### OAuth Support
27 |
28 | Without authentication, [the GitHub API allows only 60 requests per hour](https://developer.github.com/v3/#rate-limiting). You can increase this to 5,000 requests per hour by [creating an OAuth token](https://github.com/settings/tokens) (no scopes needed) and entering it into the extension options page (at `chrome://extensions/` in Chrome, or `about:addons` -> Extensions in Firefox).
29 |
30 | ### Paste Protection
31 |
32 | OctoPermalinker will also detect if you paste a fragile link into a comment box. When this happens, OctoPermalinker will notify you of the corresponding permalink, in case you'd like to use it instead.
33 |
34 | # Want to contribute?
35 |
36 | Anyone can help make this project better - check out the [Contributing](/CONTRIBUTING.md) guide!
37 |
38 | # Feedback
39 |
40 | If you encounter a problem using OctoPermalinker, or would like to request an enhancement, feel free to create an [issue](https://github.com/josephfrazier/octopermalinker/issues).
41 |
42 | # Thanks
43 |
44 | - [@stefanbuck](https://github.com/stefanbuck) for building [OctoLinker], which this project is based on.
45 |
46 | [OctoLinker]: https://github.com/OctoLinker/browser-extension/
47 |
48 | # Legal and License
49 |
50 | The OctoPermalinker project is not affiliated with, sponsored by, or endorsed by github, inc.
51 |
52 | Copyright (c) 2017–present [Joseph Frazier](https://github.com/josephfrazier) Licensed under the MIT license.
53 |
--------------------------------------------------------------------------------
/TODO.md:
--------------------------------------------------------------------------------
1 | TODO
2 | ====
3 |
4 | * Add PR link after commit links/references
5 | * Handle `/blame/` links
6 | * Handle `/commits/` links
7 | * Example: https://github.com/localForage/localForage/pull/555#issuecomment-392352127
8 | * href is https://github.com/localForage/localForage/commits/v2.0-dev?after=40c70210a54645c33919a283b2a1138f40b7a001+69
9 | * Permalink urls in Reddit comments: https://www.reddit.com/r/reactjs/comments/4y43uc/react_router_how_to_deal_with_search_queries/d6l7q2f/
10 | * Fix link at https://github.com/greenkeeperio/greenkeeper/issues/314#issuecomment-255737405
11 | * href is https://github.com/greenkeeperio/greenkeeper/blob/master/src/evilhackerdude.js
12 | * Fix link at https://github.com/prettier/prettier/pull/2190#discussion_r122602431
13 | * href is https://github.com/tdeekens/prettier/blob/fix/css-modules-composes/src/doc-utils.js#L161
14 | * Permalink urls in Hacker News comments: https://news.ycombinator.com/item?id=14110168
15 | * https://news.ycombinator.com/item?id=13917368
16 | * https://news.ycombinator.com/item?id=14697480
17 | * https://news.ycombinator.com/item?id=14807951
18 | * handle wiki links - "wide-spectrum blocker" at https://github.com/gorhill/uBlock/tree/f4f52c32209348dc050b77b6e0d84b9be5897541#beware-ublock-origin-is-completely-unrelated-to-the-web-site-ublockorg
19 | * permalink raw.githubusercontent.com links: https://web.archive.org/web/20170329173434id_/https://github.com/github/markup/issues/1022#issue-215368549
20 | * permalink urls in code blobs: https://github.com/MatAtBread/fast-async/blob/fbd2c4db54813b5130f49a46f6280bcad17c7f53/plugin.js#L35
21 | * see if github provides blame api to figure out when it was committed
22 | * Use e.g. `git log -S` to guess when links were added.
23 | * For example, the `more...` permalink here is broken: https://github.com/nice-registry/nice-package/tree/5388835b5412c2e5f448fbd5043117f07d87a210#nice-package---
24 | * Figure out what's going on with 96bd92ba935682d06693c47775b93dec32d019c2
25 |
--------------------------------------------------------------------------------
/assets/link-icon-chrome-webstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josephfrazier/octopermalinker/058bb281747f9280b528cb8ae78be101f970149f/assets/link-icon-chrome-webstore.png
--------------------------------------------------------------------------------
/assets/link-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josephfrazier/octopermalinker/058bb281747f9280b528cb8ae78be101f970149f/assets/link-icon.png
--------------------------------------------------------------------------------
/assets/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "OctoPermalinker",
3 | "version": "1.0.0",
4 | "manifest_version": 2,
5 | "author": "Joseph Frazier",
6 | "description": "Fixes broken GitHub links.",
7 | "homepage_url": "https://github.com/josephfrazier/octopermalinker",
8 | "icons": {
9 | "212": "link-icon.png"
10 | },
11 | "applications": {
12 | "gecko": {
13 | "id": "OctoPermalinker"
14 | }
15 | },
16 | "options_ui": {
17 | "page": "options.html",
18 | "chrome_style": true
19 | },
20 | "content_scripts": [
21 | {
22 | "matches": [
23 | "https://github.com/*",
24 | "https://gist.github.com/*"
25 | ],
26 | "js": [
27 | "app.js"
28 | ],
29 | "run_at": "document_idle",
30 | "all_frames": false
31 | }
32 | ],
33 | "web_accessible_resources": [
34 | "link-icon.png"
35 | ],
36 | "permissions": [
37 | "storage",
38 | "https://github.com/",
39 | "https://gist.github.com/"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/assets/options.html:
--------------------------------------------------------------------------------
1 |
2 |
The problem is that each command separated by && is actually totally isolated from one another, so cross-env can't do anything about other isolated commands. So you need to prefix each one.
794 |
795 | You signed in with another tab or window. Reload to refresh your session.
796 | You signed out in another tab or window. Reload to refresh your session.
797 |
The workflow for the developer will be pretty nice, since he just has to develop his extension for https://developer.chrome.com/extensions/api_index. The build tool will shim the missing apis automatically (so far possible).
719 |
720 | You signed in with another tab or window. Reload to refresh your session.
721 | You signed out in another tab or window. Reload to refresh your session.
722 |
651 |
652 | You signed in with another tab or window. Reload to refresh your session.
653 | You signed out in another tab or window. Reload to refresh your session.
654 |
For new projects please do not use this project anymore. The Docker API client and types have been moved
610 | to the main docker repo under the following import paths:
All pull requests and issues should be filed under the docker/docker repository.
618 | This repo will not receive any future updates and you should update your existing import
619 | paths to the new package paths.
620 |
621 |
License
622 |
623 |
engine-api is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
681 | You can't perform that action at this time.
682 |
693 |
694 | You signed in with another tab or window. Reload to refresh your session.
695 | You signed out in another tab or window. Reload to refresh your session.
696 |
The problem is that each command separated by
547 |&&
is actually totally isolated from one another, socross-env
can't do anything about other isolated commands. So you need to prefix each one.This is noted in the docs.
548 |I'm sorry it took so long to get back to you.
549 |