Code Monkey home page Code Monkey logo

Comments (5)

SBoudrias avatar SBoudrias commented on June 2, 2024

+1 for a require plugin. I tough a bit about this after your talk yesterday, and I was wondering why this wasn't the default approach instead of overwriting require.load.

As you're already using require to load files in a non-AMD project, I feel the switch to 100% plugin base would be pretty straightforward (I may be wrong though!).

But obviously this would make things easier for project testing in AMD environment as there's basically no script tag used in the process:
https://github.com/SBoudrias/require.replace/blob/master/test/jasmine/index.html
https://github.com/cesine/FieldDB/blob/master/tests/jasmine-main.js

from blanket.

alex-seville avatar alex-seville commented on June 2, 2024

I can't remember if there was a reason I didn't start with a plugin. I know I was inspired by this posting:
https://groups.google.com/forum/#!msg/requirejs/OWwnZxZd9Sk/UzBT10utrzUJ

However, the script tags would always stay in the test runner as we don't want to make the user change their test runner just to use Blanket. That's why we used the data-cover attribute.

I may be able to use the data-cover attribute to collect the scripts, but then use a plugin anyway and eliminate the overloaded requirejs.load.

Thanks for the feedback.

from blanket.

alex-seville avatar alex-seville commented on June 2, 2024

I've got an example working to handle this situation.

What I do is just overload the requirejs.load as usual, but I only instrument the files that match a string or regex set on the blanket object. This works in a similar manner to how I do it on the node side. So for a test runner with an existing reference to requirejs you would now just do:

blanket.loadOnly = "src"; require({ ... your requirejs config ... });

only the files that have "src" in the path will be instrumented, and the rest will be loaded normally.

I should have the example up in a week or so, I need to get it running with phantomjs first.

from blanket.

alex-seville avatar alex-seville commented on June 2, 2024

The reason I didn't use a requirejs plugin (like text) is because that would require changes to the test files, or the requirejs config (i.e. adding "blanket!" in front of all the dependency references). By using the approach above the only change needed to the test runner is to the blanket.loadOnly="src"; line. It's more seamless that way.

from blanket.

alex-seville avatar alex-seville commented on June 2, 2024

I'm going to close this issue, as the problem seems to be resolved. A new release should be up in a week that will be compatible with existing requirejs enabled test runners.

from blanket.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.