Rails项目中的节点模块可能会缓存旧版本?

时间:2017-05-02 18:18:04

标签: node.js caching npm flexicious

我正在开发一个使用flexicious-react-datagridflexicious-react-datagrid-styles节点模块的Rails项目。这些模块在package.json中引用为:

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

我遇到的问题是手动将其中一个模块更新为许可版本。

public flexicious-react-datagrid模块是一个试用版,经过一段时间的使用后,它现在已经过期,并在尝试加载页面时提供了ErrorCode103的弹出窗口和一些无限循环运行,以便页面永远卡住。

Flexicious团队通过提供包含许可代码的react-datagrid.min.js文件来提供许可版本。即使我在节点模块中替换它,仍然会发生错误。

这使得它看起来像是在缓存旧的代码服务器端,因为调用ErrorCode103弹出窗口的代码应来自被替换的代码。我已尝试在隐身或其他浏览器中加载但没有运气。

我们的项目使用browserify,我有一些怀疑(但不确定)这可能是缓存模块的内容。到目前为止,我还没有找到导致这个问题的原因。

我的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是版本1.1.6,它安装了1.3.8,这是我在./npm_libs/flexicious-react-datagrid内拥有我的许可代码的版本。

即使没有使用许可代码,1.3.8也没有被加载,因为它仍然给我一个过期试用的错误。

2 个答案:

答案 0 :(得分:2)

毕竟是Browserify。我终于偶然发现了缓存版本,它隐藏在项目根目录的/tmp/文件夹中。

我可能也通过安装Sublime中的Gitignored包而使自己失明,该包没有显示或搜索.gitignore文件中的文件/文件夹。我必须删除该软件包并在我的sublime-settings中编辑我的"folder_exclude_patterns"以重新显示这些文件夹。

我已将完整的tmp文件夹删除到部分构建过程中,因此我们不会再次遇到此问题。

答案 1 :(得分:0)

是的,您好像还在使用以前安装的flexicious-react-datagrid版本。

第一个猜测是您需要运行npm install ./npm_libs/flexicious-react-datagrid来更新此模块。 npm manager经常将所有依赖模块复制到node_modules目录中,然后node.js使用它来解析require('flexicious-react-datagrid')