0

I am using browserify to package all the require into a bundled js file suitable for running in the browser environment. The following code runs fine when I run the npm run build-dist command. How can I now change the package.json file to remove the type="text/babel" property from index.html file?

index.js:

import React from 'react';
ReactDOM.render(<h1>Hello World</h1>, document.getElementById('root'));

index.html

<html>
  <head>
    <title>React, Browserify Demo</title>
  </head>
  <body>
    <script src="bundle.min.js" type="text/babel"></script>
  </body>
</html>

package.json

{
  "name": "facebookalbums2",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react-dom": "^16.2.0",
    "react-image-lightbox": "^4.5.0",
    "react-scripts": "1.1.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject",

    "build-dev": "browserify --debug src/index.js > build/bundle.min.js",
    "build-dist": "SET NODE_ENV=production & browserify src/index.js | uglifyjs -m > build/bundle.min.js",

    "watch-dev": "watchify --debug src/index.js -o build/bundle.min.js",
    "watch-dist": "SET NODE_ENV=production & watchify src/index.js | uglifyjs -m -o build/bundle.min.js"
  },
  "browserify": {
    "transform": [
      [
        "babelify",
        {
          "presets": ["env"],
          "compact":false
        }
      ]
    ]
  },
  "babel": {
    "presets": [
      "env",
      "react",
      "stage-2"
    ]
  },
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.4",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "babelify": "^8.0.0",
    "browserify": "^16.1.1",
    "react": "^16.2.0",
    "uglify-js": "^3.3.13",
    "watchify": "^3.11.0"
  }
}

Error in browser when i remove the "text/babel" property:

Uncaught Error: Target container is not a DOM element.
    at invariant (react-dom.development.js?ver=4.9.4:66)
    at renderSubtreeIntoContainer (react-dom.development.js?ver=4.9.4:15854)
    at Object.render (react-dom.development.js?ver=4.9.4:15964)
    at Object.11.react (bundle.min.js?ver=4.9.4:1)
    at f (bundle.min.js?ver=4.9.4:1)
    at s (bundle.min.js?ver=4.9.4:1)
    at bundle.min.js?ver=4.9.4:1
Ajit Goel
  • 4,180
  • 7
  • 59
  • 107

1 Answers1

0

i was trying to provide a simple example based on what i was seeing in my wordpress plugin + Reactjs code. I need to remember to test out my code before I put it out. thanks everyone.

index.html;

<html>
  <head>
    <title>React + Browserify Demo</title>
  </head>
  <body>
        <div id="root"></div>
    <script src="bundle.min.js"></script>
  </body>
</html>

index.js:

import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(<h1>Hello World</h1>, document.getElementById('root'));
Ajit Goel
  • 4,180
  • 7
  • 59
  • 107