我在我的应用中使用material-ui。我分解了材料ui并回滚到了以前的版本并在那里进行了一些更改,现在我想在我的项目中使用forked repo,所以我使用以下步骤从here安装模块:
fork's
页面commits
commit
的右侧,点击Browse code
Download ZIP
按钮(或您看到的任何内容)并复制。它应该是这样的archive
替换为tarball
并删除.zip
扩展名。你应该最终得到像https://github.com/SoftwareMarbles/express-jsend/tarball/fdd4089087d916fa6e3b5abaa1ff9dd9ea96df8d
"express-jsend": "url/from/step/5"
npm install
成功运行时没有出现任何错误,但它不会编译js
中的src
文件并将它们放在lib
文件夹中,与运行npm install时相比较使用我的package.json中的以下代码
"material-ui": "0.14.4"
所以我的问题:
为什么npm没有编译src文件并将它们放在lib文件夹中?
答案 0 :(得分:1)
直接指向callemall/material-ui repo的fork的原因是该repo根目录中的包仅用于构建发布的material-ui包到npm。请注意,root package.json中的名称是" material-ui-build" - 不是" material-ui"。
通过在repo的根目录中运行npm run build
来创建实际的material-ui包。这会将material-ui包写入repo根目录的build
子目录。
如果要在package.json
的依赖项部分中指向material-ui的github fork,可以创建一个包含build
子目录内容的新repo并指向{{1} 1}}到那个新的回购(繁琐)。像这样:
package.json
指向自定义github repo的另一种方法是将一个范围包发布到npm(我从未这样做过)。或者,如果您只进行本地开发,可以使用git clone git@github.com:callemall/material-ui.git material-ui
cd material-ui
npm install
npm run build
cp -Tr build ../material-ui-package
cd ../material-ui-package
git init .
git add .
git commit -m ...
将包指向npm link
子目录。