Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-71882

Grunt babel should replace names of modules

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 3.9.11, 3.10.8, 3.11.4, 4.0
    • 3.9.12, 3.10.9, 3.11.5
    • JavaScript
    • MOODLE_310_STABLE, MOODLE_311_STABLE, MOODLE_39_STABLE, MOODLE_400_STABLE
    • MOODLE_310_STABLE, MOODLE_311_STABLE, MOODLE_39_STABLE
    • MDL-71882-311
    • MDL-71882-master
    • Hide
      1. Run grunt babel:dist
        1. Confirm that there were no changes in built files

          git status
          

      2. Run grunt watch in a window
      3. Unzip the attached 71882.zip into the lib/amd/src directory
        1. Confirm that the new files were built by grunt watch
        2. Confirm that the output included the following lines:

          Replacing module name 'arl-test1' with core/test1
          Replacing module name 'arl-test2' with core/test2
          

        3. Confirm that the output did not include any other warnings about core/test3 or core/test4*
      4. In your browser open the Browser Developer tools -> Console, and run:

        require(['core/test5'])
        

        1. Confirm that the following output was shown:

          arl-test1 loaded
          arl-test2 loaded
          arl-test4 loaded
          arl-test4 loaded
          

      Show
      Run grunt babel:dist Confirm that there were no changes in built files git status Run grunt watch in a window Unzip the attached 71882.zip into the lib/amd/src directory Confirm that the new files were built by grunt watch Confirm that the output included the following lines : Replacing module name 'arl-test1' with core/test1 Replacing module name 'arl-test2' with core/test2 Confirm that the output did not include any other warnings about core/test3 or core/test4* In your browser open the Browser Developer tools -> Console, and run: require(['core/test5']) Confirm that the following output was shown : arl-test1 loaded arl-test2 loaded arl-test4 loaded arl-test4 loaded

    Description

      If a third-party JS module is included and it already has a named define, then we should replace that name rather than trying to add to it (which we currently do).

      The signature for the define call is:

           define = function (name, deps, callback) {
      

      https://github.com/requirejs/requirejs/blob/master/require.js#L2061

      We can easily replace any provided name with the calculated one. We know it will always be a String if provided (it's optional). We already perform AST translations so this should be trivial.

      Attachments

        1. 71882.zip
          1 kB
        2. MDL-71882_Step 1.png
          MDL-71882_Step 1.png
          31 kB
        3. MDL-71882_Step 3.png
          MDL-71882_Step 3.png
          173 kB
        4. MDL-71882_Step 4_manual.png
          MDL-71882_Step 4_manual.png
          121 kB
        5. MDL-71882 step 4.png
          MDL-71882 step 4.png
          41 kB

        Issue Links

          Activity

            People

              dobedobedoh Andrew Lyons
              dobedobedoh Andrew Lyons
              Simey Lameze Simey Lameze
              Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
              Angelia Dela Cruz Angelia Dela Cruz
              David Woloszyn, Huong Nguyen, Jake Dallimore, Meirza, Michael Hawkins, Raquel Ortega, Safat Shahin, Stevani Andolo
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                17/Jan/22

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 2 hours, 9 minutes
                  2h 9m