The*_*Fox 5 node.js npm react-bootstrap
我有一个使用旧版react-bootstrap 的项目
在我的 package.json 我有
"react-boostrap": "^0.13.3"
Run Code Online (Sandbox Code Playgroud)
那里有一个导致问题的错误,它的修复非常简单,所以我分叉了 repo,回滚到 v0.13.3 的提交:
git reset --hard <commit-hash>
Run Code Online (Sandbox Code Playgroud)
修复了我的 1 行,然后用力推回我的叉子。
然后我在主项目中更新了我的 package.json 以指向我的 fork:
"react-boostrap": "mygithubrepo/react-bootstrap"
Run Code Online (Sandbox Code Playgroud)
我删除了 node_modules 目录并运行sudo npm cache clear以确保一切都很好且新鲜。然后我跑了npm install它确实从 repo 中拉下了我的 react-bootstrap 版本。
但是,它现在下拉的版本与 node_modules 文件夹中的格式不同。从本质上讲,它似乎并没有构建该项目。
如果我使用:
"react-boostrap": "^0.13.3"
Run Code Online (Sandbox Code Playgroud)
然后 node_modules 文件夹包含构建的代码,如下所示:
+node_modules
--+react_bootstrap
----+utils
-----Acordion.js
etc.....
Run Code Online (Sandbox Code Playgroud)
但是当我将它指向我的 repo 的分叉版本时:
"react-boostrap": "mygithubrepo/react-bootstrap"
Run Code Online (Sandbox Code Playgroud)
然后我只得到节点模块中的源代码库结构(它似乎没有被构建)
+node_modules
--+react_bootstrap
----+docs
----+ie8
----+src
-------+utils
--------Acordion.jsx
........etc.....
----+tools
etc.....
Run Code Online (Sandbox Code Playgroud)
现在,当我引用 react bootstrap using require('react-bootstrap')then 它不起作用(因为尚未构建文件)。
那么我指向 npmjs 上的文件而不是 github 上的文件有什么不同?react-bootstrap package.json 中没有任何 prepublish/publish/postpublish 脚本,所以我不确定他们是否在推送到 npmjs 之前手动构建了它。
基本上,当我npm install在主项目上运行时,我需要自动构建我的分叉版本。有任何想法吗?
编辑 1
根据npm install以下 Jonathan Muller 的回答,更新我的 react-bootstrap 分支后,我在主项目存储库上运行的错误:
>> 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.
Run Code Online (Sandbox Code Playgroud)
在 package.json 中,添加以下内容以在 npm 安装时构建它:
{
"scripts": {
"postinstall": "grunt build"
}
}
Run Code Online (Sandbox Code Playgroud)
这样安装后就会构建包
然后要使其与 require 一起工作,请将以下内容添加到 package.json 中:
{
"main": "amd/react-bootstrap.js"
}
Run Code Online (Sandbox Code Playgroud)
因此,当您“需要”它时,可以找到正确的文件。否则它会搜索index.js
| 归档时间: |
|
| 查看次数: |
1915 次 |
| 最近记录: |