我有一个使用旧版本的react-bootstrap的项目
在我的 package.json 我有
"react-boostrap": "^0.13.3"
那里有一个导致问题的错误,它的修复非常简单,所以我分叉了 repo,回滚到 v0.13.3 的提交:
git reset --hard <commit-hash>
修复了我的 1 行,然后强制推回我的前叉。
然后我在主项目中更新了我的 package.json 以指向我的 fork:
"react-boostrap": "mygithubrepo/react-bootstrap"
我删除了 node_modules 目录并运行sudo npm cache clear
以确保一切都很好而且新鲜。然后我跑了npm install
,它确实从 repo 中拉下了我的 react-bootstrap 版本。
但是,它现在下拉的版本与 node_modules 文件夹中的格式不同。从本质上讲,它似乎并没有构建项目。
如果我使用:
"react-boostrap": "^0.13.3"
然后 node_modules 文件夹包含构建的代码,如下所示:
+node_modules
--+react_bootstrap
----+utils
-----Acordion.js
etc.....
但是当我将它指向我的 repo 的分叉版本时:
"react-boostrap": "mygithubrepo/react-bootstrap"
然后我只得到节点模块中的源代码库结构(它似乎没有被构建)
+node_modules
--+react_bootstrap
----+docs
----+ie8
----+src
-------+utils
--------Acordion.jsx
........etc.....
----+tools
etc.....
现在,当我使用 react bootstrap 引用它时require('react-bootstrap')
它不起作用(因为尚未构建文件)。
那么我指向 npmjs 上的文件而不是 github 上的文件有什么不同呢?react-bootstrap package.json 中没有任何 prepublish/publish/postpublish 脚本,所以我不确定他们是否在推送到 npmjs 之前手动构建了它。
npm install
基本上,当我在我的主项目上运行时,我需要自动构建我的分叉版本。有任何想法吗?
编辑 1
npm install
根据乔纳森穆勒的回答,在更新我的 react-bootstrap 分支后,我在主项目 repo 上运行的错误如下:
>> Local Npm module "grunt-contrib-uglify" not found. Is it installed?
>> Local Npm module "grunt-amd-wrap" not found. Is it installed?
>> Local Npm module "grunt-react" not found. Is it installed?
>> Local Npm module "grunt-contrib-clean" not found. Is it installed?
>> Local Npm module "grunt-contrib-watch" not found. Is it installed?
>> Local Npm module "grunt-contrib-copy" not found. Is it installed?
>> Local Npm module "grunt-browserify" not found. Is it installed?
>> Local Npm module "grunt-contrib-requirejs" not found. Is it installed?
Warning: Task "clean:amd" not found. Use --force to continue.
Aborted due to warnings.