Я отчаянно пытаюсь сохранить некоторые escape-символы (\
) в файле js в моем проекте React js, потому что они мне нужны. Но кто-то их автоматически удаляет, я думаю, это красивее.
Вот мой конфиг:
└── src
| └── folder
| └── fileToIgnore.js
├──.prettierrc
├──.prettierignore
├── package.json
В моем package.json
у меня вот такое:
{
"lint-staged": {
"*.{js,json,css,md}": [
"prettier --write",
"git add"
],
},
"dependencies": {
"react": "^16.6.0",
"react-dom": "^16.6.0",
...
},
"devDependencies": {
"husky": "^0.14.3",
"lint-staged": "^7.1.2",
"prettier": "1.13.2",
"source-map-explorer": "^1.6.0"
},
"scripts": {
"precommit": "lint-staged",
"start": ". ./scripts/build-vars.sh && react-scripts start",
...
}
}
В моем fileToIgnore.js
есть вот что:
/* eslint-disable no-useless-escape */
export const setClickTag = `'use strict';function getParameterByName(a){var b=RegExp('[?&]'+a+'=([^&]*)').exec(window.location.search);return b&&decodeURIComponent(b[1].replace(/\+/g,' '))}var clickTag=getParameterByName('clickTag');`;
В моем .prettierrc
есть что
singleQuote: true
trailingComma: all
printWidth: 120
РЕШЕНИЕ 1
Я попытался создать файл .prettierignore
с этим:
/src/folder/fileToIgnore.js
**/src/folder/fileToIgnore.js
src/folder/fileToIgnore.js
src/folder/*.js
но это не сработало
РЕШЕНИЕ 2
Я добавил // prettier-ignore
перед каждой переменной, которую хотел игнорировать, но это не сработало.
РЕШЕНИЕ 3
Я пробовал модифицировать packager.json
вот так:
"lint-staged": {
"*.{js,json,css,md}": [
"prettier --write",
"git add"
],
"ignore":["**/src/folder/fileToIgnore.js"]
},
но это тоже не было решением.
Я действительно застрял здесь, я думаю, может быть, React перезаписывает некоторые параметры? Или нет ? Я потерян ! Спасибо за вашу помощь !!
ну, я бы все равно задал этот вопрос, из-за сложности этого! Но если вы спросите, я помещаю содержимое файла в содержание своего сообщения. Даже если бы я мог использовать другой метод, отличный от Regex, для достижения своей цели, я действительно хотел бы понять, как сделать так, чтобы красивее работало правильно!
Это не имеет ничего общего с prettier, теперь вы представили пример, на котором легко увидеть, что вы не избегаете своих строк.
Вы не можете сделать просто \
в JS, чтобы сделать обратную косую черту в JS внутри строки, вам нужно использовать \\
.
Теперь, имея это в виду, внутри вашей строки у вас есть -> replace(/\+/g,' ')
, это должно быть replace(/\\+/g,' ')
из-за экранирования строки.
Большое спасибо !
Вы предоставили здесь много деталей, одна вещь, которую вы полностью забыли включить, - это пример, в котором вы хотите использовать `\` в своих файлах JS.