Почему сохраняется только первый комментарий с `/ *!` и ни один из остальных?

#reactjs #typescript

#reactjs #typescript

Вопрос:

Я думал, что все комментарии с /*! будут сохранены в скомпилированном javascript. Однако, похоже, что по какой-то причине сохраняется только первый.

 /*!
 * tsfile.ts
 * - a demonstrative typescript file 
 * - to compile: `./node_modules/.bin/tsc tsfile.ts`
 * 
 * Copyright © Grateful | Fri Oct 09
 */


// Number
let num: number = 0.444;
let hex: number = 0xbeef;
let bin: number = 0b0010;

/*
 * tsfile2.ts
 * - a demonstrative typescript file 
 * - to compile: `./node_modules/.bin/tsc tsfile.ts`
 * 
 * Copyright © Grateful | Fri Oct 09
 */


// Number
let num2: number = 0.444;
let hex2: number = 0xbeef;
let bin2: number = 0b0010;

/*! 
 * Another comment that should be preserved! 
 */

// Number
let num3: number = 0.444;
let hex3: number = 0xbeef;
let bin3: number = 0b0010;


// 1. any
// 2. built-in ie number, string, boolean, undefined, null, void, etc
// 3. user-defined ie array, enum, array, class, interface, and tuple


// Number
let num4: number = 0.444;
let hex4: number = 0xbeef;
let bin4: number = 0b0010;
  

Вот пример.

Комментарии:

1. Вы используете removeComments опцию, которая объясняет, почему они удаляются. Похоже, что если комментарий является первым, то он сохраняется. Пока не уверен, почему это так.

Ответ №1:

Вы используете removeComments опцию, которая, согласно документации:

Удалите все комментарии, кроме комментариев к заголовку, начинающихся с /*!

(Выделение мое).

Итак, похоже, что комментарии должны быть как в заголовке (т. е. перед ними нет кода) и /*! должны быть сохранены.

Если вы хотите сохранить все комментарии, просто отключите эту removeComments опцию.

Комментарии:

1. О! Это сложно!! Как мне выбирать и выбирать различные комментарии?

2. То есть вы хотите сохранить определенные типы комментариев, а не другие? Я бы посмотрел на использование плагина babel для этого.

3. Нет, я не говорю о различных типах комментариев. Меня просто интересует возможность сохранить те, которые я хотел бы сохранить, и удалить остальные.

4. @Grateful Итак, вы хотите сохранить одни /*! и избавиться от других? Я бы посмотрел на использование плагина babel для этого. Мог бы посмотреть на это: babeljs.io/docs/en/options#shouldprintcomment Но, честно говоря, я бы просто подумал о том, чтобы сохранить все комментарии.

5. @Grateful Я вижу, что кто-то еще хочет сделать то, что вы хотите здесь: github.com/babel/minify/issues/961