Сохраняйте лицензионные комментарии при использовании UglifyJS2 с плагином gulp

В этом проекте я использую gulp-uglify версии 3.0.1, и я хочу сохранить комментарии, содержащие тексты лицензий в выводе.

На странице проектов указано, что

Most of the minify options from the UglifyJS API are supported.

и этот ответ показывает, как передать параметры минимизации в плагин.

В UglifyJS Readme указано, что для сохранения текстов лицензий

You can pass --comments to retain certain comments in the output. By default it will keep JSDoc-style comments that contain "@preserve", "@license" or "@cc_on" (conditional compilation for IE)

Итак, я попробовал:

.pipe(uglify({
    mangle: true,
    output: {
        beautify: true,
        comments: "all"
    }
}))

Но так как даже указав "all" не приводит к комментариям атрибуции лицензии, я предполагаю, что опция минимизировать comments ведет себя иначе, чем аргумент командной строки --comments,

Я также попробовал preserveComments найдено здесь, но это просто генерирует:

[13:37:42] GulpUglifyError: unable to minify JavaScript
Caused by: DefaultsError: `preserveComments` is not a supported option

Есть ли способ достичь того, что аргумент командной строки предлагает через gulp-uglify плагин? Если это невозможно, могу ли я использовать плагин webpack?

Есть этот обходной путь, указав регулярное выражение, но я хочу использовать функциональность непосредственно из UglifyJS, если это возможно. Кроме того, он также не сохраняет заголовки лицензий.

1 ответ

У меня такая же проблема. Я заметил , что предложенная документация комментариев UglifyJS

Вы можете пройти --comments allчтобы сохранить все комментарии, или допустимое регулярное выражение JavaScript, чтобы оставить только комментарии, соответствующие этому регулярному выражению. Например --comments /^!/останутся комментарии, как /*! Copyright Notice */.

Так что я попробовал" comments: /^!/":

      .pipe(uglify({
    mangle: true,
    output: {
        beautify: true,
        comments: /^!/
    }
}))

Теперь я вижу комментарии об авторских правах в полученном коде с uglified.

Другие вопросы по тегам