uglify 和 cssmin 对特殊注释的处理

https://github.com/spmjs/spm-build/issues/70

很多开源类库习惯在代码中使用注释的方式标注版权信息,比如:

/*!
  jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license
  (special comments)
*/

/*
  normal comments
*/

通常版权注释会以 /*! 开头,或者包含 @license,@preserve。如果开发者希望在自己压缩后的代码中保留版权信息,或者在项目中使用了保留版权信息的第三方开源代码,spm 打包压缩之后,这些特殊注释应该被保留在压缩后的代码中,而不应该删除。
目前 spm 的处理方式是:CSS 压缩时默认保留特殊注释,而 JS 压缩时则会删除所有注释,分别是 gulp-cssmin 和 gulp-uglify 的默认处理方式。
gulp-uglify 选项:删除所有注释(默认)、保留特殊注释、保留所有注释、回调函数
gulp-cssmin 选项:保留特殊注释(默认)、删除特殊注释、保留第一条特殊注释

spm-build 可以提供一个参数,控制是否删除特殊注释,默认为保留特殊注释。

可以在 package.json 里配的,比如:

{
  "spm": {
    "cssmin": {},
    "uglify": {}
  }
}

你可能感兴趣的:(uglify 和 cssmin 对特殊注释的处理)