comme je l'ai découvert uglifyJS ignore les doubles guillemets échappés dans une seule chaîne de guillemets.N'échappez pas aux guillemets doubles
'test \" + foo + \"'
résultats dans
'test " + foo + "'
Ceci est juste un mauvais comportement.
J'ai un .js
que je veux minifier et ces données doivent aller dans un JSON. Mais l'API JSON doit être comme ça.
{
string: "test \" + foo + \""
}
pas
{
string: "test " + foo + ""
}
est-il un moyen de configurer uglifyJS qu'il ne négligez pas \"
Au moment où j'enlaidir mon javascript et remplacer tout mon \"
avec des espaces réservés. Après cela, je fais une chaîne remplacer avec tous les espaces réservés pour le faire fonctionner. Mais alors mes tests ne fonctionnent pas.
EDIT: La version enlaidir de mon Javascript
doit être valide et valable JSON
Javascript
ainsi.
EDIT: Comme demandé, une partie de l'exemple réel. Ce code doit être minimisé et ensuite mis dans un JSON.
var privacylink = '#privacyButtonURL#';
link = '<a href=\"' + privacylink + '\" target=\"_blank\" style=\"color:#4398b5; text-decoration:underline;\">hear</a>';
La version enlaidir serait
var a="#privacyButtonURL#", b='<a href="'+a+'" target="_blank" style="color:#4398b5; text-decoration:underline;">hear</a>'
Cela ne fonctionnerait pas.
JSON.stringify('var a="#privacyButtonURL#", b='<a href="'+a+'" target="_blank" style="color:#4398b5; text-decoration:underline;">hear</a>'')
« Cette est juste un mauvais comportement "- Il ne l'est pas. En JavaScript, dans ce contexte, les deux énoncés signifient exactement la même chose. Votre problème est que vous dépendez de la mise en forme spécifique de JS afin de pouvoir en compiler JSON en écrasant les chaînes. Utilisez une bibliothèque JSON appropriée à la place. – Quentin
'JSON.stringify ({chaîne: 'test' + foo + ''})' – coyotte508
Ce n'est pas le problème. Je crée dynamiquement un '.js' que je veux envoyer à mon backend. L'API de mon backend ne prend que JSON. Donc j'envoie un JSON valide avec le '.js' comme une chaîne. Mais dans cette chaîne '.js' j'ai besoin de doubles guillemets échappés sinon, ça ne marche pas. – DK1990