Webpack Not Allowed - Official Answer Requested

It seems that Twitch has relaxed their requirement on obfuscated code. After many rejections, my webpack extension has finally been approved!

EDIT: After submitting a new version, without changing my build process in any way, i’ve been rejected again.

They mentioned 2 things in the review email:

To clarify, we are currently allowing Webpack, however, you must disable all obfuscation, mangling, or other options that prevent readability of code. Function names for your core code must be intact and human readable.

-My submission fulfilled those requirements. I am not using uglifyjs. The function names in the webpack output are the same as my source code. How is it okay to approve one submission, and deny the next, when they have the same webpack config?

Understand that using Webpack to combine all of your libraries and core code into one file can raise review times substantially. Keeping libraries separate from your core code allows moderators to exclude standard libraries from review and only focus on your core code for your Extension.

-All of my submissions have included a vendor.js file that contains all of my 3rd party libraries. From the very first submission i have had this separate vendor file. Like… seriously? This is just a random tip that has nothing to do with my submission.

With these two extraordinarily unhelpful suggestions that my submission already fulfilled, i have no idea how to get thru the review process, i’m back to square one. Sorry for the borderline pouting, but the developer experience has been horrid so far.

EDIT
I received a review email that states

If using several large libraries, consider excluding those from Webpack and providing them as separate files. If we can check file hashes against known standard libraries, this makes it far easier to approve those libraries.

For future readers, you’ll have to include libraries as scripts instead of imports.

As for uglifyJs, these options seem to be the best fit for the review process. This leaves the original code intact, improving it even, by removing unused code. It also gives you tree shaking.

new webpack.optimize.UglifyJsPlugin({
  compress: {
	  dead_code: true,
	  unused: true,
	  side_effects: true,
	  warnings: false
  },
  mangle: false,
  output: { beautify: true },
  sourceMap: true
}),

EDIT my extension was approved with the above webpack config.

2 Likes