popcodeorg / popcodeorg/popcode

Stop using bower

Open
#1,442 2 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

code quality
Dominant language
JavaScript
Stars
191
Forks
143
Avg merge
4d 11h
Merged PRs (30d)
5

Description

We currently use Bower to install the libraries that are available to project code, e.g. jQuery, lodash, etc. This is a good fit since Bower by default ships packages in the old “put a global variable on window” form, which is exactly what Popcode projects expect.

However, Bower itself discourages people from using it, so we should probably migrate away from it. Ideally, we could just install the same packages via npm and load the pre-built standalone script into the preview frame. But there’s no guarantee that’s possible—lodash, for instance, does not appear to ship with a pre-built standalone script in its npm package.

A couple of other options (all kind of complicated and not terribly appealing) come to mind:

  • Create a webpack entrypoint for each library, then load the desired ones directly from the preview frame using <script> tags. This has the advantage of maintaining the expected behavior associated with loading scripts the old-fashioned way
  • Bundle all the libraries as part of the preview support script, but have the preview expose only the ones that are enabled as properties on window. This might get tricky with evaluation order, but has the advantage of not creating a proliferation of webpack entrypoints, and avoids the possibly vexing task of capturing the right reference to a bundle entrypoint to use in the <script> tag

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.