Can't import ES6 react module











up vote
0
down vote

favorite












Repro



https://github.com/jim-king-2000/nextbugrepro



Detail



I create a very simple react component.



const My = () => (<div>ABC</div>);
export default My;


It is in a standalone library project(https://github.com/jim-king-2000/react-module).



Now I use the component in another project.



// index.js
import { My } from 'react-module';


// package.json
"dependencies": {
...
"react-module": "git+https://github.com/jim-king-2000/react-module.git"
}


Then, node.js complains:



error  in ./node_modules/react-module/components/My.js

Module parse failed: Unexpected token (1:18)
You may need an appropriate loader to handle this file type.


const My = () => (<div>ABC</div>);
export default My;
./node_modules/react-module/index.js 1:0-32 1:0-32
@ ./pages/index.js
@ multi ./pages/index.js


Question



How to build a ES6 react npm library?










share|improve this question
























  • This is a Webpack message. Where is the Webpack config?
    – madflow
    Nov 21 at 11:42










  • I use next.js, which uses webpack implicitly.
    – Jim Jin
    Nov 21 at 12:04










  • remove the curly braces from the import statement
    – Nipek
    Nov 21 at 13:12












  • I didn't use My.js directly. There is an index.js which reexports "My" like this "export * from './components/My';". So, the curly braces are OK. You could check the repro out to take a look.
    – Jim Jin
    Nov 21 at 13:15

















up vote
0
down vote

favorite












Repro



https://github.com/jim-king-2000/nextbugrepro



Detail



I create a very simple react component.



const My = () => (<div>ABC</div>);
export default My;


It is in a standalone library project(https://github.com/jim-king-2000/react-module).



Now I use the component in another project.



// index.js
import { My } from 'react-module';


// package.json
"dependencies": {
...
"react-module": "git+https://github.com/jim-king-2000/react-module.git"
}


Then, node.js complains:



error  in ./node_modules/react-module/components/My.js

Module parse failed: Unexpected token (1:18)
You may need an appropriate loader to handle this file type.


const My = () => (<div>ABC</div>);
export default My;
./node_modules/react-module/index.js 1:0-32 1:0-32
@ ./pages/index.js
@ multi ./pages/index.js


Question



How to build a ES6 react npm library?










share|improve this question
























  • This is a Webpack message. Where is the Webpack config?
    – madflow
    Nov 21 at 11:42










  • I use next.js, which uses webpack implicitly.
    – Jim Jin
    Nov 21 at 12:04










  • remove the curly braces from the import statement
    – Nipek
    Nov 21 at 13:12












  • I didn't use My.js directly. There is an index.js which reexports "My" like this "export * from './components/My';". So, the curly braces are OK. You could check the repro out to take a look.
    – Jim Jin
    Nov 21 at 13:15















up vote
0
down vote

favorite









up vote
0
down vote

favorite











Repro



https://github.com/jim-king-2000/nextbugrepro



Detail



I create a very simple react component.



const My = () => (<div>ABC</div>);
export default My;


It is in a standalone library project(https://github.com/jim-king-2000/react-module).



Now I use the component in another project.



// index.js
import { My } from 'react-module';


// package.json
"dependencies": {
...
"react-module": "git+https://github.com/jim-king-2000/react-module.git"
}


Then, node.js complains:



error  in ./node_modules/react-module/components/My.js

Module parse failed: Unexpected token (1:18)
You may need an appropriate loader to handle this file type.


const My = () => (<div>ABC</div>);
export default My;
./node_modules/react-module/index.js 1:0-32 1:0-32
@ ./pages/index.js
@ multi ./pages/index.js


Question



How to build a ES6 react npm library?










share|improve this question















Repro



https://github.com/jim-king-2000/nextbugrepro



Detail



I create a very simple react component.



const My = () => (<div>ABC</div>);
export default My;


It is in a standalone library project(https://github.com/jim-king-2000/react-module).



Now I use the component in another project.



// index.js
import { My } from 'react-module';


// package.json
"dependencies": {
...
"react-module": "git+https://github.com/jim-king-2000/react-module.git"
}


Then, node.js complains:



error  in ./node_modules/react-module/components/My.js

Module parse failed: Unexpected token (1:18)
You may need an appropriate loader to handle this file type.


const My = () => (<div>ABC</div>);
export default My;
./node_modules/react-module/index.js 1:0-32 1:0-32
@ ./pages/index.js
@ multi ./pages/index.js


Question



How to build a ES6 react npm library?







node.js reactjs npm ecmascript-6






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 at 13:17

























asked Nov 21 at 11:32









Jim Jin

438




438












  • This is a Webpack message. Where is the Webpack config?
    – madflow
    Nov 21 at 11:42










  • I use next.js, which uses webpack implicitly.
    – Jim Jin
    Nov 21 at 12:04










  • remove the curly braces from the import statement
    – Nipek
    Nov 21 at 13:12












  • I didn't use My.js directly. There is an index.js which reexports "My" like this "export * from './components/My';". So, the curly braces are OK. You could check the repro out to take a look.
    – Jim Jin
    Nov 21 at 13:15




















  • This is a Webpack message. Where is the Webpack config?
    – madflow
    Nov 21 at 11:42










  • I use next.js, which uses webpack implicitly.
    – Jim Jin
    Nov 21 at 12:04










  • remove the curly braces from the import statement
    – Nipek
    Nov 21 at 13:12












  • I didn't use My.js directly. There is an index.js which reexports "My" like this "export * from './components/My';". So, the curly braces are OK. You could check the repro out to take a look.
    – Jim Jin
    Nov 21 at 13:15


















This is a Webpack message. Where is the Webpack config?
– madflow
Nov 21 at 11:42




This is a Webpack message. Where is the Webpack config?
– madflow
Nov 21 at 11:42












I use next.js, which uses webpack implicitly.
– Jim Jin
Nov 21 at 12:04




I use next.js, which uses webpack implicitly.
– Jim Jin
Nov 21 at 12:04












remove the curly braces from the import statement
– Nipek
Nov 21 at 13:12






remove the curly braces from the import statement
– Nipek
Nov 21 at 13:12














I didn't use My.js directly. There is an index.js which reexports "My" like this "export * from './components/My';". So, the curly braces are OK. You could check the repro out to take a look.
– Jim Jin
Nov 21 at 13:15






I didn't use My.js directly. There is an index.js which reexports "My" like this "export * from './components/My';". So, the curly braces are OK. You could check the repro out to take a look.
– Jim Jin
Nov 21 at 13:15














2 Answers
2






active

oldest

votes

















up vote
1
down vote



accepted










You need to setup babel compile, in order to compile jsx, which seems to be missing in your package.json






share|improve this answer




























    up vote
    0
    down vote













    After the investigation for several hours, I find that the library has to be transpiled to ES5. I hope we could use ES6 npm modules in the future.






    share|improve this answer





















      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














       

      draft saved


      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53411180%2fcant-import-es6-react-module%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      1
      down vote



      accepted










      You need to setup babel compile, in order to compile jsx, which seems to be missing in your package.json






      share|improve this answer

























        up vote
        1
        down vote



        accepted










        You need to setup babel compile, in order to compile jsx, which seems to be missing in your package.json






        share|improve this answer























          up vote
          1
          down vote



          accepted







          up vote
          1
          down vote



          accepted






          You need to setup babel compile, in order to compile jsx, which seems to be missing in your package.json






          share|improve this answer












          You need to setup babel compile, in order to compile jsx, which seems to be missing in your package.json







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 21 at 11:49









          Rohit Garg

          565




          565
























              up vote
              0
              down vote













              After the investigation for several hours, I find that the library has to be transpiled to ES5. I hope we could use ES6 npm modules in the future.






              share|improve this answer

























                up vote
                0
                down vote













                After the investigation for several hours, I find that the library has to be transpiled to ES5. I hope we could use ES6 npm modules in the future.






                share|improve this answer























                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote









                  After the investigation for several hours, I find that the library has to be transpiled to ES5. I hope we could use ES6 npm modules in the future.






                  share|improve this answer












                  After the investigation for several hours, I find that the library has to be transpiled to ES5. I hope we could use ES6 npm modules in the future.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 21 at 15:48









                  Jim Jin

                  438




                  438






























                       

                      draft saved


                      draft discarded



















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53411180%2fcant-import-es6-react-module%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Contact image not getting when fetch all contact list from iPhone by CNContact

                      count number of partitions of a set with n elements into k subsets

                      A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks