Узловой модуль в Rails-проекте потенциально кеширует старую версию?

Я работаю над проектом Rails, который использует flexicious-react-datagrid а также flexicious-react-datagrid-styles узловые модули. Эти модули упоминаются в package.json как:

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

Проблема в том, что я вручную обновляю один из модулей до лицензионной версии.

Публичный модуль flexicious-реагировать-datagrid является пробной версией, которая после некоторого времени работы с ним, срок его действия истек и выдает всплывающее окно с ErrorCode103 при попытке загрузки страницы и запускается какой-то бесконечный цикл, так что страница застревает при загрузке навсегда.

Команда Flexicious предоставляет лицензионную версию, предоставляя react-datagrid.min.js файл, который содержит лицензионный код. Даже если я заменил это в модуле узла, ошибка все еще происходит.

Это создает впечатление, что он кэширует старый код на стороне сервера, поскольку код, который будет вызывать ErrorCode103 всплывающее окно должно быть из кода, который был заменен. Я попытался загрузить в инкогнито или других браузерах без удачи.

Наш проект использует browserify, и у меня есть некоторое подозрение (но не уверен), что это может быть тем, что кеширует модуль. До сих пор мне не удавалось найти причину этой проблемы.

Мой пакет.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-реагировать-datagrid была версия 1.1.6, он устанавливает 1.3.8, которая является версией, в которой у меня есть мой лицензионный код ./npm_libs/flexicious-react-datagrid,

Даже не используя лицензионный код, 1.3.8 не загружается, так как он все еще дает мне ошибку истекшей пробной версии.

2 ответа

Решение

Это был Browserify в конце концов. Я наконец наткнулся на кешированную версию, она скрывалась в /tmp/ папка в корневом каталоге проекта.

Скорее всего, я также ослепил себя, установив пакет Gitignored в Sublime, который не показывал и не выполнял поиск файлов / папок, которые были в файле.gitignore. Я должен был удалить этот пакет и отредактировать мой "folder_exclude_patterns" в моих sublime-настройках заново показать эти папки.

Я включил удаление папки tmp полностью в часть нашей процедуры сборки, чтобы у нас больше не возникало этих проблем.

Да, похоже, что вы все еще используете ранее установленную версию flexicious-react-datagrid,

Первое предположение, что вам нужно запустить npm install ./npm_libs/flexicious-react-datagrid обновить этот модуль. Менеджер npm обычно копирует все зависимые модули в node_modules dir, а затем node.js использует его для разрешения require('flexicious-react-datagrid'),

Другие вопросы по тегам