2

I am working on a Rails project that uses flexicious-react-datagrid and flexicious-react-datagrid-styles node modules. These modules are referenced in the package.json as:

"dependencies": {
...
"flexicious-react-datagrid": "file:./npm_libs/flexicious-react-datagrid",
"flexicious-react-datagrid-styles": "^1.2.0",
...
}

The problem I have is manually updating one of the modules to a licensed version.

The public flexicious-react-datagrid module is a trial version, which after some amount of time working with it, it has now expired and gives a popup with ErrorCode103 when trying to load the page and some infinite loop runs so the page becomes stuck loading forever.

The Flexicious team provides the licensed version by providing a react-datagrid.min.js file that contains the licensed code. Even though I replace this in the node module, The error still occurs.

This makes it seem like it's caching the old code server-side, since the code that would invoke the ErrorCode103 popup should be from the code that was replaced. I've tried loading in incognito or other browsers with no luck.

Our project uses browserify, and I have some suspicion (but not sure) that this may be what is caching the module. I haven't had any luck trying to find what is causing this issue so far.

My package.json:

{
  "name": "redacted",
  "version": "0.0.1",
  "description": "redacted",
  "author": "redacted",
  "license": "SEE LICENSE IN LICENSE.TXT",
  "babel": {
    "comments": false,
    "presets": [
      "es2015",
      "react"
    ]
  },
  "devDependencies": {
    "browserify": "~> 14.0.0",
    "browserify-incremental": "^3.1.0",
    "browserify-css": "0.10.0"
  },
  "dependencies": {
    "babel-core": "^6.0.0",
    "babel-eslint": "^6.0.4",
    "babel-loader": "^6.0.0",
    "babel-polyfill": "^6.3.14",
    "babel-preset-es2015": "^6.0.15",
    "babel-preset-react": "^6.0.15",
    "babelify": "^7.2.0",
    "bower-webpack-plugin": "^0.1.9",
    "codemirror": "^5.22.0",
    "copy-webpack-plugin": "^4.0.1",
    "copyfiles": "^0.2.1",
    "core-js": "^2.4.0",
    "css-loader": "^0.23.0",
    "eslint": "^2.0.0",
    "eslint-loader": "^1.0.0",
    "eslint-plugin-react": "^5.1.1",
    "file-loader": "^0.8.4",
    "flexicious-react-datagrid": "file:./npm_libs/flexicious-react-datagrid",
    "flexicious-react-datagrid-styles": "^1.2.0",
    "gh-pages-deploy": "^0.4.0",
    "glob": "^7.0.0",
    "history": "^2.1.1",
    "isparta-instrumenter-loader": "^1.0.0",
    "jquery-browserify": "*",
    "material-ui": "^0.16.5",
    "minimist": "^1.2.0",
    "mocha": "^2.2.5",
    "moment": "^2.17.1",
    "node-sass": "^3.4.2",
    "normalize.css": "^4.1.1",
    "null-loader": "^0.1.1",
    "open": "0.0.5",
    "postcss": "^5.0.11",
    "postcss-loader": "^0.9.1",
    "react": "^15.4.0",
    "react-addons-test-utils": "^15.4.0",
    "react-codemirror": "^0.3.0",
    "react-day-picker": "^5.0.0",
    "react-dom": "^15.4.0",
    "react-router": "^2.4.0",
    "react-tap-event-plugin": "^2.0.0",
    "recursive-readdir-sync": "^1.0.6",
    "rimraf": "^2.4.3",
    "sass-loader": "^3.1.2",
    "style-loader": "^0.13.0",
    "url-loader": "^0.5.6"
  }
}

flexicious-react-datagrid was version 1.1.6, it installs 1.3.8 which is the version I have my licensed code in within ./npm_libs/flexicious-react-datagrid.

Even not using the licensed code, 1.3.8 isn't being loaded as it is still giving me an error of an expired trial.

UberMario
  • 193
  • 1
  • 13

2 Answers2

2

It was Browserify after all. I finally stumbled upon the cached version, it was hiding in a /tmp/ folder in the project's root directory.

I likely also blinded myself by having the Gitignored package in Sublime installed, which didn't show or search files/folders that were in the .gitignore file. I had to remove that package and edit my "folder_exclude_patterns" in my sublime-settings to re-show these folders.

I've included removing the tmp folder in its entirety to part of our build procedure so we don't have this issue again.

UberMario
  • 193
  • 1
  • 13
0

Yep, it looks as if you're still using a previously installed version of flexicious-react-datagrid.

The first guess is that you need to run npm install ./npm_libs/flexicious-react-datagrid to update this module. npm manager usually copies all dependency modules into node_modules dir and then node.js uses it to resolve require('flexicious-react-datagrid').

idmitme
  • 899
  • 7
  • 13
  • I've run `npm install ./npm_libs/flexicious-react-datagrid` with unfortunately no difference. I'll edit my origin post with my package.json dependencies in case it helps at all. – UberMario May 02 '17 at 20:17
  • Okay, the second guess, in `./npm_libs/flexicious-react-datagrid/package.json`, `main` field should be set to `dist/react-datagrid.min.js` (licensed version). If it is not true, try to change it and run npm install again. If it is true, I'll say that the problem is somewhere in your building process (try to rebuild from scratch) or flexicious tries to verify the license by sending a request to their server, but it fails. – idmitme May 02 '17 at 21:10