Async/await in plugin: works in dev instance, not in docker instance

I get this error when installing a plugin in a docker instance:

Compressing: plugin-third-party-ea46d31326df4fb4ed1d79ef5ecad5179b0512d15492b09e348b67b027cced32.js
uglifyjs '/var/www/discourse/public/assets/_plugin-third-party-ea46d31326df4fb4ed1d79ef5ecad5179b0512d15492b09e348b67b027cced32.js' -p relative -c -m -o '/var/www/discourse/public/assets/plugin-third-party-ea46d31326df4fb4ed1d79ef5ecad5179b0512d15492b09e348b67b027cced32.js' --source-map-root '/assets' --source-map '/var/www/discourse/public/assets/plugin-third-party-ea46d31326df4fb4ed1d79ef5ecad5179b0512d15492b09e348b67b027cced32.js.map' --source-map-url '/assets/plugin-third-party-ea46d31326df4fb4ed1d79ef5ecad5179b0512d15492b09e348b67b027cced32.js.map'
Parse error at _plugin-third-party-ea46d31326df4fb4ed1d79ef5ecad5179b0512d15492b09e348b67b027cced32.js:637,7
	async function onEvent(container, event) {
	      ^
SyntaxError: Unexpected token: keyword (function)
    at JS_Parse_Error.get (eval at <anonymous> (/usr/lib/node_modules/uglify-js/tools/node.js:27:1), <anonymous>:86:23)
    at /usr/lib/node_modules/uglify-js/bin/uglifyjs:384:40
    at time_it (/usr/lib/node_modules/uglify-js/bin/uglifyjs:620:15)
    at /usr/lib/node_modules/uglify-js/bin/uglifyjs:345:9
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)

Removing async/await fixes the issue. It looks like some es6 code is sent to uglifyjs before conversion to es5.

The error doesn’t always occur. A few days ago, I retried installing several times and it finally succeeded. But now I’m stuck again.

Did you name your plugin file name.js.es6 ?

Nope, none of my plugin files are named name.js.es6.

Hence the problem, you need to name them with that extension.

My plugin has just installed correctly, at the 3rd attempt.

If you want it to compile properly, make sure they have a .js.es6 extension, then it will work everytime.

I am not even sure if we enabled async await in babel @eviltrout ? I certainly have never used it in the Discourse code base.

@Falco, if your question was about the extension of my files, then yes, I’m using .js.es6 everywhere.

We are not transpiling that. It probably works in the browser if you’re using an evergreen one, but we don’t support it yet.

We could benefit from it, I just haven’t had the time to enable it, make sure the perf is good, and start converting code.

Any news on this? Having it would be great.

We did start using this in tests, have not decided on our strategy yet for using it in production or not.

이 부분에 대해 진전이 있었나요?

@eviltrout 님이 ember CLI 사용으로의 전환을 위한 장기 스파이크를 시작했습니다. 이 작업의 일부가 부수적으로 이 문제를 해결해 줄 것으로 기대합니다.

향후 8개월 내 이 문제가 해결될 것으로 예상됩니다.

저도 같은 문제를 겪고 있습니다.

저는 모든 곳에서 name.js.es6를 사용하고 있습니다.

이것이 async/await를 제거해야 한다는 뜻인가요?

네, 앞서 설명드린 바와 같이 아직 async/await를 지원하지 않습니다.