Web3 with Webpack Build not found without webpack-dev-server












1















With a Reactjs webpack project I am able to run webpack dev server and access my index.html with web3 picked up.



If I build the project and open the index.html in Chrome then web3 is not detected.



Everything works when running webpack-dev-server --mode development --open --hot
but with webpack --mode development then web3 is not injected



The purpose of my app is a tool to be run locally, it does not have to be served from anywhere public, also I don't see that I need to run a lite server to serve the content.




  • web3: 1.0.0-beta.36

  • webpack: 4.22.0

  • webpack-cli: 3.1.2


  • webpack-dev-server: 3.1.8



    import './index.css';
    import IxoTimelockApp from './components/IxoTimelockApp';
    import InstallMetaMask from './components/install-
    metamask/install-metamask-component.jsx';
    let regeneratorRuntime = require("regenerator-runtime");
    class App extends Component {

    state = {
    web3Obj:null
    }
    componentDidUpdate(prevprops) {
    if (prevprops != this.props){
    this.setState({web3Obj: this.props.web3Obj})
    }
    }
    componentDidMount(){
    window.addEventListener('load', async () => {
    // Modern dapp browsers...
    if (window.ethereum) {
    window.web3 = new Web3(ethereum);
    try {
    // Request account access if needed
    await ethereum.enable();
    this.setState({web3Obj: window.web3})
    } catch (error) {
    // User denied account access...
    }
    }
    // Legacy dapp browsers...
    else if (window.web3) {
    window.web3 = new Web3(web3.currentProvider);
    this.setState({web3Obj: window.web3})
    }
    // Non-dapp browsers...
    else {
    console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
    }
    });
    }


    render() {
    if(this.state.web3Obj) {
    return <TimelockApp/>
    }else return <InstallMetaMask/>
    }
    }



    export default App;

    const wrapper = document.getElementById("root");
    wrapper ? ReactDOM.render(<App />, wrapper) : false;











share|improve this question



























    1















    With a Reactjs webpack project I am able to run webpack dev server and access my index.html with web3 picked up.



    If I build the project and open the index.html in Chrome then web3 is not detected.



    Everything works when running webpack-dev-server --mode development --open --hot
    but with webpack --mode development then web3 is not injected



    The purpose of my app is a tool to be run locally, it does not have to be served from anywhere public, also I don't see that I need to run a lite server to serve the content.




    • web3: 1.0.0-beta.36

    • webpack: 4.22.0

    • webpack-cli: 3.1.2


    • webpack-dev-server: 3.1.8



      import './index.css';
      import IxoTimelockApp from './components/IxoTimelockApp';
      import InstallMetaMask from './components/install-
      metamask/install-metamask-component.jsx';
      let regeneratorRuntime = require("regenerator-runtime");
      class App extends Component {

      state = {
      web3Obj:null
      }
      componentDidUpdate(prevprops) {
      if (prevprops != this.props){
      this.setState({web3Obj: this.props.web3Obj})
      }
      }
      componentDidMount(){
      window.addEventListener('load', async () => {
      // Modern dapp browsers...
      if (window.ethereum) {
      window.web3 = new Web3(ethereum);
      try {
      // Request account access if needed
      await ethereum.enable();
      this.setState({web3Obj: window.web3})
      } catch (error) {
      // User denied account access...
      }
      }
      // Legacy dapp browsers...
      else if (window.web3) {
      window.web3 = new Web3(web3.currentProvider);
      this.setState({web3Obj: window.web3})
      }
      // Non-dapp browsers...
      else {
      console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
      }
      });
      }


      render() {
      if(this.state.web3Obj) {
      return <TimelockApp/>
      }else return <InstallMetaMask/>
      }
      }



      export default App;

      const wrapper = document.getElementById("root");
      wrapper ? ReactDOM.render(<App />, wrapper) : false;











    share|improve this question

























      1












      1








      1








      With a Reactjs webpack project I am able to run webpack dev server and access my index.html with web3 picked up.



      If I build the project and open the index.html in Chrome then web3 is not detected.



      Everything works when running webpack-dev-server --mode development --open --hot
      but with webpack --mode development then web3 is not injected



      The purpose of my app is a tool to be run locally, it does not have to be served from anywhere public, also I don't see that I need to run a lite server to serve the content.




      • web3: 1.0.0-beta.36

      • webpack: 4.22.0

      • webpack-cli: 3.1.2


      • webpack-dev-server: 3.1.8



        import './index.css';
        import IxoTimelockApp from './components/IxoTimelockApp';
        import InstallMetaMask from './components/install-
        metamask/install-metamask-component.jsx';
        let regeneratorRuntime = require("regenerator-runtime");
        class App extends Component {

        state = {
        web3Obj:null
        }
        componentDidUpdate(prevprops) {
        if (prevprops != this.props){
        this.setState({web3Obj: this.props.web3Obj})
        }
        }
        componentDidMount(){
        window.addEventListener('load', async () => {
        // Modern dapp browsers...
        if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
        // Request account access if needed
        await ethereum.enable();
        this.setState({web3Obj: window.web3})
        } catch (error) {
        // User denied account access...
        }
        }
        // Legacy dapp browsers...
        else if (window.web3) {
        window.web3 = new Web3(web3.currentProvider);
        this.setState({web3Obj: window.web3})
        }
        // Non-dapp browsers...
        else {
        console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
        }
        });
        }


        render() {
        if(this.state.web3Obj) {
        return <TimelockApp/>
        }else return <InstallMetaMask/>
        }
        }



        export default App;

        const wrapper = document.getElementById("root");
        wrapper ? ReactDOM.render(<App />, wrapper) : false;











      share|improve this question














      With a Reactjs webpack project I am able to run webpack dev server and access my index.html with web3 picked up.



      If I build the project and open the index.html in Chrome then web3 is not detected.



      Everything works when running webpack-dev-server --mode development --open --hot
      but with webpack --mode development then web3 is not injected



      The purpose of my app is a tool to be run locally, it does not have to be served from anywhere public, also I don't see that I need to run a lite server to serve the content.




      • web3: 1.0.0-beta.36

      • webpack: 4.22.0

      • webpack-cli: 3.1.2


      • webpack-dev-server: 3.1.8



        import './index.css';
        import IxoTimelockApp from './components/IxoTimelockApp';
        import InstallMetaMask from './components/install-
        metamask/install-metamask-component.jsx';
        let regeneratorRuntime = require("regenerator-runtime");
        class App extends Component {

        state = {
        web3Obj:null
        }
        componentDidUpdate(prevprops) {
        if (prevprops != this.props){
        this.setState({web3Obj: this.props.web3Obj})
        }
        }
        componentDidMount(){
        window.addEventListener('load', async () => {
        // Modern dapp browsers...
        if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
        // Request account access if needed
        await ethereum.enable();
        this.setState({web3Obj: window.web3})
        } catch (error) {
        // User denied account access...
        }
        }
        // Legacy dapp browsers...
        else if (window.web3) {
        window.web3 = new Web3(web3.currentProvider);
        this.setState({web3Obj: window.web3})
        }
        // Non-dapp browsers...
        else {
        console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
        }
        });
        }


        render() {
        if(this.state.web3Obj) {
        return <TimelockApp/>
        }else return <InstallMetaMask/>
        }
        }



        export default App;

        const wrapper = document.getElementById("root");
        wrapper ? ReactDOM.render(<App />, wrapper) : false;








      reactjs webpack webpack-dev-server web3






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 '18 at 4:53









      Phillip GibbPhillip Gibb

      1971113




      1971113
























          1 Answer
          1






          active

          oldest

          votes


















          0














          From: MetaMask Compatibility Guide



          Requirements 🔩



          🌐 Http(s) - Web Server Required




          Due to browser security restrictions, we can't communicate with dapps
          running on file://. Please use a local server for development.







          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',
            autoActivateHeartbeat: false,
            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%2f53386438%2fweb3-with-webpack-build-not-found-without-webpack-dev-server%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            From: MetaMask Compatibility Guide



            Requirements 🔩



            🌐 Http(s) - Web Server Required




            Due to browser security restrictions, we can't communicate with dapps
            running on file://. Please use a local server for development.







            share|improve this answer




























              0














              From: MetaMask Compatibility Guide



              Requirements 🔩



              🌐 Http(s) - Web Server Required




              Due to browser security restrictions, we can't communicate with dapps
              running on file://. Please use a local server for development.







              share|improve this answer


























                0












                0








                0







                From: MetaMask Compatibility Guide



                Requirements 🔩



                🌐 Http(s) - Web Server Required




                Due to browser security restrictions, we can't communicate with dapps
                running on file://. Please use a local server for development.







                share|improve this answer













                From: MetaMask Compatibility Guide



                Requirements 🔩



                🌐 Http(s) - Web Server Required




                Due to browser security restrictions, we can't communicate with dapps
                running on file://. Please use a local server for development.








                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 21 '18 at 6:43









                Phillip GibbPhillip Gibb

                1971113




                1971113






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53386438%2fweb3-with-webpack-build-not-found-without-webpack-dev-server%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

                    android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

                    SQL update select statement

                    'app-layout' is not a known element: how to share Component with different Modules