jack2
1
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.
1 Like
Falco
(Falco)
2
Did you name your plugin file name.js.es6
?
3 Likes
jack2
3
Nope, none of my plugin files are named name.js.es6
.
cpradio
(cpradio)
4
Hence the problem, you need to name them with that extension.
3 Likes
jack2
5
My plugin has just installed correctly, at the 3rd attempt.
cpradio
(cpradio)
6
If you want it to compile properly, make sure they have a .js.es6 extension, then it will work everytime.
1 Like
sam
(Sam Saffron)
7
I am not even sure if we enabled async await in babel @eviltrout ? I certainly have never used it in the Discourse code base.
jack2
8
@Falco, if your question was about the extension of my files, then yes, I’m using .js.es6
everywhere.
eviltrout
(Robin Ward)
9
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.
7 Likes
syl
10
Any news on this? Having it would be great.
3 Likes
sam
(Sam Saffron)
11
We did start using this in tests, have not decided on our strategy yet for using it in production or not.
5 Likes
syl
12
Have you made some progress on this?
1 Like
sam
(Sam Saffron)
13
@eviltrout has started a long spike at moving us towards using ember CLI. Part of the work should sort this out as a side effect.
I would expect we have this solved some time in the next 8 months.
9 Likes
Yes we don’t support async/await yet as explained.
3 Likes