Реагировать игнорировать файл .prettierignore [РЕДАКТИРОВАТЬ: ничего общего с красивее] - PullRequest
0 голосов
/ 17 декабря 2018

Я отчаянно пытаюсь сохранить некоторые 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 перезаписывает некоторыепараметры?Или нет ?Я потерян !Спасибо за вашу помощь !!

1 Ответ

0 голосов
/ 17 декабря 2018

Это не имеет ничего общего с красивее, теперь вы предоставили пример, легко увидеть, что вы не избегаете своих строк.

Вы не можете просто сделать \ в JS, чтобы сделать обратную косую чертув JS внутри строки вам нужно использовать \\.

Теперь, имея в виду, что внутри вашей строки у вас есть -> replace(/\+/g,' '), это должно быть replace(/\\+/g,' ') из-за экранирования строки.

...