docs: function normalize_package_src() {
      const PKG_DIR = path.join(__dirname, '..', config.dir.pkg);
      glob.sync('**/?(*.js|*.css)', {
          cwd: PKG_DIR,
          nodir: true,
          ignore: [
              config.dir.external + '/**/*',
              config.dir.res + '/**/*',
              config.dir.template + '/**/*',
          ],
      }).forEach((file) => {
          console.log('  normalize... ' + file);
          const ext = path.extname(file);
          const basename = path.basename(file, ext);
          const srcPath = path.join(PKG_DIR, file);
  
          let src = fs.readFileSync(srcPath).toString().replace(/^\ufeff/gm, '');
          if (!/^\/\**!+/.test(src)) {
              // set banner
              const node = srcmap.getNodeFromCode(src);
              node.prepend(banner(ext, basename) + '\n');
              src = srcmap.getCodeFromNode(node);
          }
          src = normalize_src(src, {
              srcmapRename: (srcPath) => {
                  const regex_src = new RegExp('^' + config.dir.src + '\\/');
                  return srcPath
                      .replace(`webpack://${LIBRARY}/`, `webpack:///`)
                      .replace('webpack:///' + config.dir.src + '/', SOURCE_MAP_NAMESPACE)
                      .replace('webpack:/webpack', 'webpack:///webpack')
                      .replace('webpack:/external', 'webpack:///external/')
                      .replace('webpack:///~', 'webpack:///node_modules')
                      .replace(/\.\.\//g, '')
                      .replace(regex_src, SOURCE_MAP_NAMESPACE + config.dir.src + '/')
                      .replace(/platforms\/\w+\//, SOURCE_MAP_NAMESPACE + config.dir.src + '/')
                  ;
              },
              multiline: 'css' === ext.toLowerCase(),
          });
          fs.writeFileSync(srcPath, src);
      });
  }