Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: README.md

Issue 29705690: Issue 6310 - Start using JavaScript modularization tool (Closed)
Left Patch Set: Created Feb. 22, 2018, 5:22 p.m.
Right Patch Set: Created Feb. 23, 2018, 9:24 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « .hgignore ('k') | js/desktop-options.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 Shared Adblock Plus UI code 1 Shared Adblock Plus UI code
2 =========================== 2 ===========================
3 3
4 The user interface elements defined in this repository will be used by various 4 The user interface elements defined in this repository will be used by various
5 Adblock Plus products like Adblock Plus for Firefox. Their functionality can be 5 Adblock Plus products like Adblock Plus for Firefox. Their functionality can be
6 tested within this repository, even though they might not work exactly the same 6 tested within this repository, even though they might not work exactly the same
7 as they will do in the final product. 7 as they will do in the final product.
8 8
9 Installing dependencies 9 Installing dependencies
10 ----------------------- 10 -----------------------
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 Remember, both `eslint` and `stylelint` can help fixing issues via `--fix` flag. 77 Remember, both `eslint` and `stylelint` can help fixing issues via `--fix` flag.
78 78
79 You can try as example via [npx](https://medium.com/@maybekatz/introducing-npx-a n-npm-package-runner-55f7d4bd282b) 79 You can try as example via [npx](https://medium.com/@maybekatz/introducing-npx-a n-npm-package-runner-55f7d4bd282b)
80 which should be provided automatically when you install `npm`. 80 which should be provided automatically when you install `npm`.
81 81
82 ```sh 82 ```sh
83 npx stylelint --fix skin/real-file-name.css 83 npx stylelint --fix skin/real-file-name.css
84 ``` 84 ```
85 85
86 Bundling
87 --------
88
89 As it is for the `desktop-options.js` case, bundling is done via `package.json`
90 script entries.
91
92 A dedicated script entry, such `bundle:desktop-options`,
93 should perform the following operations:
94
95 * ensure source code passes linting
96 * ensure the bundle won't affect future linting operations
97 * ensure `browserify` uses `--node` and `--no-bundle-external` flags
98 * point at the entry point, and output in the top level folder
99
100 Accordingly, this is what happens with the `bundle:desktop-options`:
101
102 ```sh
103 # the && operator ensure each step is executed only
104 # if the previous one didn't produce an error
105 eslint ./js/**/*.js &&
106 # browserify doesn't offer a way to prefix with text
107 # the file is hence created with eslint disabled and a warning
108 echo '/* eslint-disable */// BUNDLED FILE' > ./desktop-options.js &&
109 # browserify take an entry point and bundle all its required files
110 # outputting the result into ./desktop-options.js
111 browserify --node --no-bundle-external js/desktop-options.js >> ./desktop-option s.js
112 ```
113
114 For a new bundle, i.e. `mobile-options.js`, simply use the same procedure
115 but swap the `desktop-options` file/script name with `mobile-options`.
116
117 The main `bundle` script should include each sub-bundle operation.
118
119 Watching
120 --------
121
122 While developing, it is convenient to bundle automatically
123 each time a source file is changed.
124
125 As a team, we agreed on restructuring JS code inside the js folder,
126 so that is watched, and each bundled created, every time there is a changes.
127
128 Similarly done for bundles, watches follow the following convention:
129
130 a named script entry such `watch:desktop-option` that
131 points at the following command:
132
133 ```sh
134 watch 'npm run bundle:desktop-options' ./js
135 ```
136
137 The main `watch` script should include each sub-watch operation.
138
139
86 Translations 140 Translations
87 ------------ 141 ------------
88 142
89 Translations for the strings in this project are managed using the online 143 Translations for the strings in this project are managed using the online
90 [Crowdin platform][crowdin]. To synchronise with Crowdin you can use the build 144 [Crowdin platform][crowdin]. To synchronise with Crowdin you can use the build
91 script. To get a list of the possible commands type `./build.py help` at 145 script. To get a list of the possible commands type `./build.py help` at
92 the command line. (You will also need the Crowdin API key for the project.) 146 the command line. (You will also need the Crowdin API key for the project.)
93 147
94 firstRun.html 148 firstRun.html
95 ------------- 149 -------------
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 errors when adding new filters on the options page 193 errors when adding new filters on the options page
140 * `blockedURLs`: a comma-separated list of URLs that should be considered 194 * `blockedURLs`: a comma-separated list of URLs that should be considered
141 blocked (necessary to test the check for blocked scripts in sharing buttons). 195 blocked (necessary to test the check for blocked scripts in sharing buttons).
142 * `downloadStatus`: sets downloadStatus parameter for filter lists, can be used 196 * `downloadStatus`: sets downloadStatus parameter for filter lists, can be used
143 to trigger various filter list download errors 197 to trigger various filter list download errors
144 * `platform=chromium`: shows the opt-out for the developer tools panel 198 * `platform=chromium`: shows the opt-out for the developer tools panel
145 * `showNotificationUI=true`: simulates user having opted-out of notifications 199 * `showNotificationUI=true`: simulates user having opted-out of notifications
146 200
147 201
148 [crowdin]: https://crowdin.com 202 [crowdin]: https://crowdin.com
LEFTRIGHT

Powered by Google App Engine
This is Rietveld