personality-insights / sunburst-chart

A visualization for IBM Watson Personality Insights service output.
https://personality-insights.github.io/sunburst-chart/
Apache License 2.0
43 stars 37 forks source link

Having issues build/deploy with MeteroJS remote (works fine locally) #20

Closed adamgins closed 7 years ago

adamgins commented 7 years ago

Hi thanks for this package. I have it running locally ( did an npm install --save personality-sunburst-chart`and it works fine with Watson.. all good, besides in grayscale (as per issue #18).

I am trying to deploy as apart of a MeteroJS (v1.4) project, which uses NPM.

I have tried both 'import PersonalitySunburstChart from 'personality-sunburst-chart';' and 'const PersonalitySunburstChart = require('personality-sunburst-chart');` These both work locally, but cannot deploy via Meteor Galaxy.

In the example on npmjs it shows <script src="path/to/personality-sunburst-chart.standalone.js"></script> but I cannot find that file in the code here.

when I deploy to the cloud (Galaxy/AWS), I get the following error during the build/deploy:

Deploying your app...                         

Errors prevented deploying:
While minifying app code:                     
<anonymous>:1545:18: SyntaxError: Unexpected token: name (PersonalitySunburstChart)
at new JS_Parse_Error (<anonymous>:1545:18)
at js_error (<anonymous>:1553:11)
at croak (<anonymous>:2089:9)
at token_error (<anonymous>:2097:9)
at unexpected (<anonymous>:2103:9)
at semicolon (<anonymous>:2123:56)
at simple_statement (<anonymous>:2314:73)
at eval (<anonymous>:2183:19)
at eval (<anonymous>:2136:24)
at block_ (<anonymous>:2429:20)
at eval (<anonymous>:2401:25)
at function_ (<anonymous>:2407:15)
at expr_atom (<anonymous>:2622:24)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at expr_list (<anonymous>:2641:24)
at eval (<anonymous>:2651:23)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2614:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at expr_list (<anonymous>:2641:24)
at subscripts (<anonymous>:2775:30)
at expr_atom (<anonymous>:2628:20)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at vardefs (<anonymous>:2509:56)
at var_ (<anonymous>:2522:27)
at eval (<anonymous>:2265:30)
at eval (<anonymous>:2136:24)
at block_ (<anonymous>:2429:20)
at eval (<anonymous>:2401:25)
at function_ (<anonymous>:2407:15)
at expr_atom (<anonymous>:2622:24)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at expr_atom (<anonymous>:2608:26)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at simple_statement (<anonymous>:2314:55)
at eval (<anonymous>:2195:24)
at eval (<anonymous>:2136:24)
at eval (<anonymous>:2904:23)
at Object.parse (<anonymous>:2915:7)
at addFile
(/home/ubuntu/.meteor/packages/standard-minifier-js/.1.2.1.dmigpl++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:69:33)
at
/home/ubuntu/.meteor/packages/standard-minifier-js/.1.2.1.dmigpl++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:77:17
at Array.forEach (native)
at exports.minify
(/home/ubuntu/.meteor/packages/standard-minifier-js/.1.2.1.dmigpl++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:75:26)
at packages/minifyStdJS_plugin.js:55:16
at Array.forEach (native)
at UglifyJSMinifier.processFilesForBundle (packages/minifyStdJS_plugin.js:50:9)

While minifying app code:
<anonymous>:1545:18: SyntaxError: Unexpected token: name (PersonalitySunburstChart)
at new JS_Parse_Error (<anonymous>:1545:18)
at js_error (<anonymous>:1553:11)
at croak (<anonymous>:2089:9)
at token_error (<anonymous>:2097:9)
at unexpected (<anonymous>:2103:9)
at semicolon (<anonymous>:2123:56)
at simple_statement (<anonymous>:2314:73)
at eval (<anonymous>:2183:19)
at eval (<anonymous>:2136:24)
at block_ (<anonymous>:2429:20)
at eval (<anonymous>:2401:25)
at function_ (<anonymous>:2407:15)
at expr_atom (<anonymous>:2622:24)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at expr_list (<anonymous>:2641:24)
at eval (<anonymous>:2651:23)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2614:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at eval (<anonymous>:2691:25)
at eval (<anonymous>:2136:24)
at expr_atom (<anonymous>:2616:35)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at expr_list (<anonymous>:2641:24)
at subscripts (<anonymous>:2775:30)
at expr_atom (<anonymous>:2628:20)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at vardefs (<anonymous>:2509:56)
at var_ (<anonymous>:2522:27)
at eval (<anonymous>:2265:30)
at eval (<anonymous>:2136:24)
at block_ (<anonymous>:2429:20)
at eval (<anonymous>:2401:25)
at function_ (<anonymous>:2407:15)
at expr_atom (<anonymous>:2622:24)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at expr_atom (<anonymous>:2608:26)
at maybe_unary (<anonymous>:2792:19)
at expr_ops (<anonymous>:2827:24)
at maybe_conditional (<anonymous>:2832:20)
at maybe_assign (<anonymous>:2856:20)
at expression (<anonymous>:2875:20)
at simple_statement (<anonymous>:2314:55)
at eval (<anonymous>:2195:24)
at eval (<anonymous>:2136:24)
at eval (<anonymous>:2904:23)
at Object.parse (<anonymous>:2915:7)
at addFile
(/home/ubuntu/.meteor/packages/standard-minifier-js/.1.2.1.dmigpl++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:69:33)
at
/home/ubuntu/.meteor/packages/standard-minifier-js/.1.2.1.dmigpl++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:77:17
at Array.forEach (native)
at exports.minify
(/home/ubuntu/.meteor/packages/standard-minifier-js/.1.2.1.dmigpl++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:75:26)
at packages/minifyStdJS_plugin.js:55:16
at Array.forEach (native)
at UglifyJSMinifier.processFilesForBundle (packages/minifyStdJS_plugin.js:50:9)
adamgins commented 7 years ago

@aprilwebster @germanattanasio any ideas pls... was hoping to demo this at a Watson meetup tomorrow. Even if I could just get the minified JS for this lib, I could just include it (short term).

adamgins commented 7 years ago

My hack to get around this was remove this NPM package and just include minified file from this separate project https://github.com/watson-developer-cloud/personality-insights-nodejs/blob/master/public/js/components/personality-sunburst-chart.standalone.min.js

so not sure if @germanattanasio had similar issues vs using this NPM package?

germanattanasio commented 7 years ago

Are you using the library as an script or with browserify ?

adamgins commented 7 years ago

Initially, I just did a npm install personality-sunburst-chart --save then used it in my code using a require as I would normally do with a node package. I ran into some issues as per #18

I then went to the script tag and included ...

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.14/d3.min.js"></script>
    <script src="https://unpkg.com/personality-sunburst-chart@2.0.4/dist/index.js"></script>

The ran fine locally, but when trying to deploy I got the issues above. So my hack was to include both 3d.js and https://github.com/watson-developer-cloud/personality-insights-nodejs/blob/master/public/js/components/personality-sunburst-chart.standalone.min.js in my public library and refer to it in using script tags as per...

    <script type="text/javascript" src="/d3.js"></script>
    <script type="text/javascript" src="/personality-sunburst-chart.js"></script>

This works, and will do for the iBM Watson meetup tonight, but is nasty as I am now maintaining some specific version of d3 and this js file... so probably will become messy down the road.

So any ideas on how to resolve, appreciated.

BTW, I use a ton of NPM packages and never seem to have this issues. Also not sure if some way to get the dependency on d3 a bit cleaner (ie dealt with dependencies on specific versions), as initially I had downloaded the latest version and personality-sunburst-chart.js would not work.

adamgins commented 7 years ago

@germanattanasio I got a not back from Meteor Support saying that this package should

1) have an Engines param https://docs.npmjs.com/files/package.json#engines so the deployer does not have to guess this

2) should browser param too https://github.com/defunctzombie/package-browser-field-spec

Also check it ECMA script compliant https://github.com/tc39/test262

So just passing this on.. I have not had time to to see if I could create a pull request or if it's something you could look at pls?

germanattanasio commented 7 years ago

@adamgins I've added engines to the package.json and I also translated the es6 to es5 in v2.0.5 but I think the problem you have is with d3.

This library is in npm but only works if you have a browser and d3. I don't think we planned on making this library work on the server side.

Can you just use?

    <script type="text/javascript" src="/d3.js"></script>
    <script type="text/javascript" src="/personality-sunburst-chart.js"></script>
germanattanasio commented 7 years ago

I think this should be working with the latest changes.