Results 1 to 2 of 2

Thread: Managing Third-Party Libraries for ExtJS 5 Apps and Packages

  1. #1
    Sencha Premium Member
    Join Date
    Oct 2014

    Default Managing Third-Party Libraries for ExtJS 5 Apps and Packages

    My company is transitioning to ExtJS 5 for web app development. We've created a site repository on our Nexus server for hosting our custom ExtJS packages that we plan to share with multiple teams. We've also uploaded .zip artifacts for ExtJS 5, Sencha Cmd, and Siesta to Nexus, and we pull them down via Gradle and extract them into the local project directory, and we have Gradle tasks that create workspaces/apps/packages as well as builds them. So far, that is working well.

    However, we are now trying to incorporate some third-party JavaScript libraries, and we're struggling with how to distribute them. Via ExtJS packages? npm?

    We need to be able to pull down:
    - ExtJS and Sencha Cmd
    - Siesta and extract it to the test location of the project
    - A beta build of PhantomJS 2 for inclusion into Siesta
    - ESLint plus custom company rules for inclusion at the project level
    - Custom company utility libraries that also utilize third-party libraries
    - Custom company ExtJS packages that themselves may or may not use third-party libraries

    From what I've read, Sencha only speaks to using third-party libraries within the context of an app, not a shareable package. We'd like to use ExtJS packages to deliver all of our custom components and tools, but that seems to be an odd choice when packages are included/bundled within apps, and a package that is only for testing or for project configuration purposes has nothing to do with a deployed app. We've started looking at using Node.js and npms as Nexus just provided support for npms in version 2.10.

    How is everyone else handling these types of dependencies? We want it to be automated so that developers have to do as little manual configuration as possible. We are using Intellij IDEA, btw.

  2. #2
    Ext JS Premium Member Greendrake's Avatar
    Join Date
    Jul 2008
    New Zealand



    I am also using shared libraries in my ExtJS apps. In ExtJS4 it was just a matter of declaring namespaces and their respective Ext.Loader URLs which was leaving it up to the server side to govern shared libraries' location.

    However, with ExtJS5 all sources seem to need to be available to Sencha CMD. Workarounds e.g. using filesystem links etc. help, but I would definitely like to see an elegant and official answer to this.

    For now, I am using the following technique:
    1. Create a symlink in the application directory pointing to third party library you need, e.g. /path/to/myCoolApp/3rdPartyLib ? /path/to/3rdPartyLib
    2. Add the path to app.json:
      "classpath": "${app.dir}/app,${app.dir}/3rdPartyLib",
    Last edited by Greendrake; 15 Dec 2014 at 2:43 PM. Reason: Added new info
    Know the actual implications of using GPL-licensed client-side JavaScript.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts