miickel / gulp-angular-templatecache

Concatenates and registers AngularJS templates in the $templateCache.
MIT License
525 stars 103 forks source link

Question: Is it possible to make template urls relative? #153

Open tandrewnichols opened 6 years ago

tandrewnichols commented 6 years ago

It's not clear to me from the docs how to do this (other than a custom function for transformUrl). I was very surprised this isn't the default, as that is the default for the grunt version of this plugin (I'm in the process of migrating some code from grunt to gulp).

Specifically, I would've expected something like:

$templateCache.put('template/foo.html', 'content')

but instead I'm getting

$templateCache.put('/template/foo.html', 'content')
akash-pal commented 6 years ago

This issue is not there in gulp 3.9.1 From gulp 4.0.0 this is an issue

dmellstrom commented 6 years ago

This is because gulp 4 uses vinyl 2.0 which normalizes internal path records, breaking the url building logic. Here is the workaround I am using. I'm working on a PR to address this.

      transformUrl: function(url) {
        // Remove leading slash which occurs in gulp 4
        return url.replace(/^\/+/g, '');
      }
simonua commented 6 years ago

Reopening due to breaking change with Gulp 3 after fixing this for Gulp 4 in 2.2.4. The code has since been reverted and 2.2.5 was published to reestablish status quo prior to this fix.

adamreisnz commented 6 years ago

The transformUrl solution does the job for now

dmellstrom commented 6 years ago

I'm working on getting access to a Mac so I can replicate and address the regression with 2.2.4 and find an alternative solution. In the meantime, we have transformUrl

betorobson commented 5 years ago

the first attempt workaround works find on unix base system however, my team mate here is running on Windows so guess what? Windows slash is diferente kkkk.

So here my workaround update:

                transformUrl: function(url) {
                    // Remove leading slash which occurs in gulp 4
                    // https://github.com/miickel/gulp-angular-templatecache/issues/153
                    return url.replace(/^(\\|\/)+/g, '');
                }
simonua commented 5 years ago

Depending on how this issue progresses, it might be worthwhile expanding the Readme for specific gulp and OS combinations. What are your thoughts?

AshokKumarSharma commented 4 years ago

It's not clear to me from the docs how to do this (other than a custom function for transformUrl). I was very surprised this isn't the default, as that is the default for the grunt version of this plugin (I'm in the process of migrating some code from grunt to gulp).

Specifically, I would've expected something like:

$templateCache.put('template/foo.html', 'content')

but instead I'm getting

$templateCache.put('/template/foo.html', 'content')

i am also getting the same issue . Is there any work around for this to remove the Leading slash added to filenames