Інструмент для видалення / видалення JavaScript [закрито]


430

Чи є сценарії командного рядка та / або онлайн-інструменти, які можуть скасувати ефекти мінімізації, подібні до того, як Tidy може очистити жахливий HTML?

(Я спеціально прагну зменшити мінімізований файл JavaScript, тому змінне перейменування все ще може бути проблемою.)


4
Для тих із вас, хто може не знати, мінімізація змінює внутрішні назви змінних на одну букву та видаляє коментарі до коду. Скасування цих змін неможливо автоматизувати.
Вівіан-Рівер

@DanielAllenLangdon Добре. Я відредагував це питання, тому це більше не означає, що зміна не змінює назви змінних.
Енді Форд

12
FWIW ... щойно знайшов JS NICE jsnice.org
Енді Форд

marcusjenkins.com/linux/… працював на мене добре.
ychaouche

1
Для @DanielAllenLangdon: jsnice.org може знищити та знешкодити навіть 30k код angularjs.
Зелений

Відповіді:


504

Ви можете скористатися цим: http://jsbeautifier.org/ Але це залежить від методу мінімізації, який ви використовуєте, цей формат лише форматує код, він не змінює імен змінних, а також не знімає кодування base62.

редагувати: насправді він може розпакувати "упаковані" сценарії (упаковано з пакувачем Діна Едуарда: http://dean.edwards.name/packer/ )


2
+1 - Я раніше користувався цим методом, і jsbeautifier.org - чудовий сервіс.
Ден Лев

Дякую. Це саме те, що я шукав.
Енді Форд


4
чи є така річ, як інструмент, який "змінює назви змінних" і все ще знає синтаксис JS, щоб не порушити код?
Хорхе Варгас

3
зробив би це в 10 разів, якби міг. просто врятував мене від пропущеного дня!
benlumley

154

Інструменти для розробників Chrome мають вбудовану функцію. Наведіть інструменти для розробників (натискання клавіші F12 - це один із способів), на вкладці "Джерела" в нижньому лівому рядку є набір піктограм. Піктограма "{}" - "Гарненький друк" і робить це перетворення за запитом.

ОНОВЛЕННЯ: IE9 "Інструменти для розробників F12" також має "Формат JavaScript" на вкладці "Сценарій" під значком "Інструменти". ( див. Пораду №4 у F12. Найкраще зберігається секрет налагодження веб-сторінок )

введіть тут опис зображення


1
Для конкретного .js, який я намагався відключити, цей метод спрацював найкраще, привіт.
igneosaur

1
Це зараз на вкладці "Джерела", а не на вкладці Сценарії.
mhenry1384

@ mhenry1384: Так, Chrome перейменував вкладку. Відповідно я оновив відповідь.
Джон Адамс

ТАК!! (у нашому додатку немає режиму налагодження / розробки для js, про який я знаю - ми, на щастя, не скорочуємо / перетворюємо імена змінних.)
Стівен Лу,

2
Лише голова: Chrome іноді псує код JavaScript. Наприклад, if (a) /regex/.match(foo);досить друкується, if (a)\n / /regex/ .\nmatch(foo);що є синтаксичною помилкою.
амфетамахін

56

Зрозумів! JSBeautifier робить саме це, і у вас навіть є варіанти автоматичного форматування.


5
stackoverflow-then-google замість google-then-stackoverflow? :))))
dfa

Я зробив google для "формату javascript в Інтернеті"
cgp

1
Цей плагін FireFox використовує JSBeautifier для відключення javascript, щоб потім ви могли встановити точки перелому на лінії в налагоджувачі js FireBug !!: addons.mozilla.org/en-US/firefox/addon/javascript-deminifier
BT

16

Ви не можете просто використовувати формат javascript ( http://javascript.about.com/library/blformat.htm )?


+1 для відповіді, яка також працює. Фабієн просто трапився у відповідь першим
Енді Форд

Це лише відповідь на "декомпресію" частини питання.
Хорхе Варгас

Ні, це не добре. Він порушує код ... :(
Рамеш

14

У Firefox, SpiderMonkey і Rhino ви можете згорнути будь-який код в анонімну функцію і зателефонувати за її toSourceметодом, який дасть вам добре відформатоване джерело функції.

toSource також знімає коментарі.

E. g. :

(function () { /* Say hello. */ var x = 'Hello!'; print(x); }).toSource()

Буде перетворено в рядок:

function () {
    var x = "Hello!";
    print(x);
}

PS : Це не "онлайн-інструмент", але всі питання щодо загальних методів прикраси закриті як копії цього.


Цікаво. Я поставив запитання 2,5 роки тому, тому я вважаю, що вже пізно редагувати заголовок, але мені все одно подобається як в Інтернеті, так і в режимі офлайн. Дякуємо, що ввійшли в гру. +1
Енді Форд

10

Якщо у вас є Mac та TextMate - легка альтернатива форматування Javascript:

  1. Відкрийте файл за допомогою Textmate.
  2. Клацніть на> Пакети> JavaScript> Переформатувати документ
  3. Тріщина відкрити пиво.

2
Пиво подається прямо зараз :)
dgilperez

6

Більшість IDE також пропонують функції автоматичного форматування. Наприклад в NetBeans, просто натисніть CTRL + K .


5

В якості альтернативи (оскільки я досі не знав про jsbeautifier.org), я використовував закладку, яка повторно ввімкнула кнопку декодування в Пакері Діна Едварда.

Я знайшов інструкцію і букмарклет тут .

ось закладка (якщо сайт не працює)

javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}}




5

Схожий на Stone , але для розробників Windows / .NET:

Якщо у вас є Visual Studio і ReSharper - легка альтернатива форматування Javascript:

  • Відкрийте файл за допомогою Visual Studio;
  • Клацніть на ReSharper> Інструменти> Код очищення (Ctrl + E, C);
  • Виберіть "За замовчуванням: Код переформатування" та натисніть кнопку ОК;
  • Тріщина відкрити пиво.

4

Незважаючи на свій інтерфейс, який знаходиться за милі, JSPretty - це хороший, безкоштовний та онлайн-інструмент для створення вихідних кодів JavaScript для людини. Ви можете застосувати бажаний тип відступів, і він також може виявити припухлість.





Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.