1. 07 11月, 2018 1 次提交
  2. 02 11月, 2018 1 次提交
    • R
      Convert ActionCable javascript to ES2015 modules with modern build environment · c96139af
      Richard Macklin 提交于
      We've replaced the sprockets `//= require` directives with ES2015
      imports. As a result, the ActionCable javascript can now be compiled
      with rollup (like ActiveStorage already is).
      
      - Rename action_cable/index.js.erb -> action_cable/index.js
      
      - Add rake task to generate a javascript module of the ActionCable::INTERNAL ruby hash
      
        This will allow us to get rid of ERB from the actioncable javascript,
        since it is only used to interpolate ActionCable::INTERNAL.to_json.
      
      - Import INTERNAL directly in ActionCable Connection module
      
        This is necessary to remove a load-order dependency conflict in the
        rollup-compiled build. Using ActionCable.INTERNAL would result in a
        runtime error:
        ```
        TypeError: Cannot read property 'INTERNAL' of undefined
        ```
        because ActionCable.INTERNAL is not set before the Connection module
        is executed.
      
        All other ActionCable.* references are executed inside of the body of a
        function, so there is no load-order dependency there.
      
      - Add eslint and eslint-plugin-import devDependencies to actioncable
      
        These will be used to add a linting setup to actioncable like the one
        in activestorage.
      
      - Add .eslintrc to actioncable
      
        This lint configuration was copied from activestorage
      
      - Add lint script to actioncable
      
        This is the same as the lint script in activestorage
      
      - Add babel-core, babel-plugin-external-helpers, and babel-preset-env devDependencies to actioncable
      
        These will be used to add ES2015 transpilation support to actioncable
        like we have in activestorage.
      
      - Add .babelrc to actioncable
      
        This configuration was copied from activestorage
      
      - Enable loose mode in ActionCable's babel config
      
        This generates a smaller bundle when compiled
      
      - Add rollup devDependencies to actioncable
      
        These will be used to add a modern build pipeline to actioncable like
        the one in activestorage.
      
      - Add rollup config to actioncable
      
        This is essentially the same as the rollup config from activestorage
      
      - Add prebuild and build scripts to actioncable package
      
        These scripts were copied from activestorage
      
      - Invoke code generation task as part of actioncable's prebuild script
      
        This will guarantee that the action_cable/internal.js module is
        available at build time (which is important, because two other modules
        now depend on it).
      
      - Update actioncable package to reference the rollup-compiled files
      
        Now that we have a fully functional rollup pipeline in actioncable, we
        can use the compiled output in our npm package.
      
      - Remove build section from ActionCable blade config
      
        Now that rollup is responsible for building ActionCable, we can remove
        that responsibility from Blade.
      
      - Remove assets:compile and assets:verify tasks from ActionCable
      
        Now that we've added a compiled ActionCable bundle to version control,
        we don't need to compile and verify it at publish-time.
      
        (We're following the pattern set in ActiveStorage.)
      
      - Include compiled ActionCable javascript bundle in published gem
      
        This is necessary to maintain support for depending on the ActionCable
        javascript through the Sprockets asset pipeline.
      
      - Add compiled ActionCable bundle to version control
      
        This mirrors what we do in ActiveStorage, and allows ActionCable to
        continue to be consumed via the sprockets-based asset pipeline when
        using a git source instead of a published version of the gem.
      c96139af
  3. 18 2月, 2018 1 次提交
  4. 17 2月, 2018 1 次提交
  5. 19 1月, 2018 1 次提交
  6. 24 7月, 2017 1 次提交
  7. 02 7月, 2017 1 次提交
  8. 01 7月, 2017 1 次提交
  9. 28 6月, 2017 1 次提交
  10. 23 5月, 2017 1 次提交
  11. 29 12月, 2016 1 次提交
  12. 07 8月, 2016 1 次提交
  13. 22 5月, 2016 1 次提交
  14. 09 5月, 2016 1 次提交
  15. 01 2月, 2016 2 次提交
  16. 31 1月, 2016 1 次提交
  17. 30 1月, 2016 1 次提交
  18. 27 1月, 2016 1 次提交
  19. 24 1月, 2016 2 次提交
  20. 19 1月, 2016 3 次提交
  21. 16 1月, 2016 1 次提交
  22. 09 1月, 2016 1 次提交
  23. 06 1月, 2016 2 次提交
  24. 18 12月, 2015 1 次提交
  25. 14 12月, 2015 1 次提交
  26. 16 10月, 2015 3 次提交
  27. 27 7月, 2015 1 次提交
  28. 25 7月, 2015 1 次提交
  29. 23 7月, 2015 1 次提交
  30. 20 7月, 2015 2 次提交
  31. 14 7月, 2015 1 次提交
  32. 13 7月, 2015 1 次提交