How to install jQuery with Composer?

后端 未结 5 1102
情话喂你
情话喂你 2020-12-07 11:09

I have been able to install repositories that do not have a composer.json file like this:

    {
        \"type\": \"package\",
        \"package\": {
                


        
相关标签:
5条回答
  • 2020-12-07 11:39

    As outlined already, part one of the solution is defining you own repositories and the "type: ": "file" repository definition option. But a subsequent issue is getting composer to put the JQuery where you want it. As it stands, composer seems to be limited to downloading dependency source under vendor-dir (which is annoying but probably related to autoloading requirements). The general fix to this limitation is to write a composer plugin that overcomes it. Seems to be a few plugins that can manage this. The simplest most lightweight solution I've found is PHP Composer Asset Manager, which is dedicated to managing non PHP/Composer "assets". Though, it has at least one limitation in that changes that the plugin makes are not managed/detected by composer. Still usable.

    Here's a full composer.json to install JQuery using that plugin:

    {
      "name": "foo/bar",
      "require":
      {
        "phpclasses/assets": "*",
         "jquery/jquery": "*"
      },
      "repositories": [
        {
         "type": "composer",
         "url": "http://www.phpclasses.org/"
        },
        {
          "type": "package",
          "package": {
            "name": "jquery/jquery",
            "version": "1.7.2",
            "type": "jquery",
            "dist": {
              "url": "http://code.jquery.com/jquery-1.7.2.js",
              "type": "file"
            }
          }
        }
      ],
      "extra": {
        "assets": {
          "actions": [
            {
              "type": "copy",
              "target": "webroot/js",
              "pattern": "\\.js$"
            }
          ],
          "packages": {
            "jquery/jquery": "*"
          }
        }
      }
    }
    
    0 讨论(0)
  • 2020-12-07 11:42

    Use npm, yarn or WebPack instead of Composer they are way better for that kind of needs.

    0 讨论(0)
  • 2020-12-07 11:43

    This is simply a missing feature. There should probably be a new type of dist which is just a single plaintext file to be downloaded and left as-is. Please file a feature request on the github issue tracker: https://github.com/composer/composer/issues/

    EDIT :

    The feature actually exists but wasn't documented.

    "type": "file"
    
    0 讨论(0)
  • 2020-12-07 11:45

    Actually there is an easier way to install jQuery, just type:

    {
        "require": {
            "components/jquery": "1.9.*"
        }
    }
    

    It uses Component Installer for Composer and by default all assets from Component are installed under components, but it can be customize. (see docs).

    0 讨论(0)
  • 2020-12-07 11:58

    you can install jquery by using npm like so,

    npm install jquery
    

    https://www.npmjs.com/package/jquery

    0 讨论(0)
提交回复
热议问题