[WIP] Experimental use webpack #1997
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I tried to introduce webpack. This PR contains the result.
advantage to current implementation
Now, many resources are included from every page. Webpack can bundle these resources.
before:

after:

Of cource, these resources are cached by browser normally.
In webpack and sbt-webpack, minify js/css is simply done by
webpack prod
on sbt.advantage to Webjars (#1595)
Rather, I think that it is appropriate to say that "Webjars is overkill". It imports npm dependency to jars one, so more lines required to write in build.sbt.
Webjars also has more complicated dependency by webjars classic/npm/bower jars. At least I know, trouble will occur when using mixed them.
webpack uses simple npm's
package.json
. It can use GitHub's repo directory. So, we can manage our customizedjsdifflib
as gitbucket/jsdifflib.If we needs new javascript library, adding it is very easy.
npm install --save
andrequire('library');
tomain.js
.disadvantage
User doesn't need node/npm. Simply run
java -jar gitbucket.war
. But for building GitBucket,npm install
downloads node_modules and sbt-webpack requires node.js.TODOs
I didn't check all functionality behavior. At least, diff doesn't work yet. It is required to do modulerize our javascript files.