mirror of
https://github.com/vector-im/element-web.git
synced 2024-09-09 22:55:12 +00:00
If we don't block on SDK builds, then the riot-web build fails due to half-built dependencies. This needs to be done at two levels: the js-sdk because it is used by both the react-sdk and riot-web, and at the react-sdk because riot-web needs it. This means our build process is synchronous for js -> react -> riot, at least for the initial build. This does increase the startup time, particularly because the file watch timer is at 5 seconds. The timer is used to detect a storm of file changes in the underlying SDKs and give the build process some room to compile larger files if needed. The file watcher is accompanied by a "canary signal file" to prevent the build-blocking script from unblocking too early. Both the js and react SDKs build when `npm install` is run, so we ensure that we only listen for the `npm start` build for each SDK. This is all done at the riot level instead of at the individual SDK levels (where we could use a canary file to signal up the stack) because: * babel (used by the js-sdk) doesn't really provide an "end up build" signal * webpack is a bit of a nightmare to get it to behave at times * this blocking approach is really only applicable to riot-web, although may be useful to some other projects. Hopefully that all makes sense.
22 lines
277 B
Text
22 lines
277 B
Text
/build
|
|
/cert.pem
|
|
/dist
|
|
/karma-reports
|
|
/key.pem
|
|
/lib
|
|
/node_modules
|
|
/electron_app/node_modules
|
|
/electron_app/dist
|
|
/packages/
|
|
/webapp
|
|
/.npmrc
|
|
.DS_Store
|
|
npm-debug.log
|
|
electron/dist
|
|
electron/pub
|
|
**/.idea
|
|
/config.json
|
|
/config.json.*
|
|
/config.local*.json
|
|
/src/component-index.js
|
|
/.tmp
|