Help us understand the problem. What is going on with this article?

grunt-connect-rewriteを使うときにハマったこと

More than 5 years have passed since last update.

フロントの開発とサーバサイドの開発とで、実装上パスが異なってしまう場合が発生してしまったため、grunt-connect-rewrite(https://github.com/viart/grunt-connect-rewrite )を使ってみたのですが、そのときハマってしまったのでメモ。

忙しい人のための要約

grunt-connect-rewriteのfromを記述するときにエスケープシーケンスを使いたい場合は、バックスラッシュを二重に記述する。

{
    from: 'path\\?hoge=(.*)$',
    to: '/$1.html'
}

要約ここまで

解説

rulesを記述するときは、下記のとおりに書くと思うのですが、

Gruntfile.js
connect: {
    rules: [
        {
            from: 'path'
            to: 'path'
        }
    ]
}

このfromは内部的に正規表現で処理されているため、正規表現が当然使えます。

例えば、

{
    from: '/js/(.*)$',
    to: '/js/new/$1'
}

という感じ。このときは、/js/ディレクトリ以下のファイルを、ファイル名やディレクトリ構成をそのままに、/new/フォルダ以下に転送する、という感じになります。

ところで普通/はエスケープするところですが、上記ではエスケープしていません。このへんは内部的にうまいことエスケープしているらしいです。

しかし、今回?を使おうと思ったところ、そこでエラーが発生。エスケープをちゃんと書けばいいのかな?と思って

{
    from: 'path\?hoge=(.*)$',
    to: '/$1.html'
}

みたいに変更してもエラーが発生。悩んでいろいろ試した末、

{
    from: 'path\\?hoge=(.*)$',
    to: '/$1.html'
}

という風に二重にバックスラッシュをつけてエスケープしてみたところ、正常にエスケープできました。

内部的にエスケープを自動で付加してるのが原因なのかな。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした