如何从 GitHub 为 Meteor 安装 NPM 包?
Posted
技术标签:
【中文标题】如何从 GitHub 为 Meteor 安装 NPM 包?【英文标题】:How to install NPM package from GitHub for Meteor? 【发布时间】:2017-04-13 01:55:00 【问题描述】:我在 GitHub 上 fork 了一个 npm 包,对其进行了更改,现在想直接从 GitHub 将包安装到我的 Meteor 应用程序中。
我的 package.json 看起来像这样:
"dependencies":
"semantic-ui-react": "git+https://git@github.com/nolandg/Semantic-UI-React.git",
然后我跑
meteor npm install
这似乎工作正常并告诉我它已安装包:
semantic-ui-react@0.61.6 (git+https://git@github.com/nolandg/Semantic-UI-React.git#f27d5c736e5de1eed0acf7769f18caee57578526)
确实该包出现在 node_modules 文件夹中。但是当我尝试启动我的 Meteor 应用程序时,我收到了这个错误:
Cannot set property '/my-website/node_modules/semantic-ui-react/package.json' of undefined
at Resolver._resolvePkgJsonMain (/tools/isobuild/resolver.js:320:9)
有没有人直接从 GitHub 在 Meteor 应用程序中成功安装 npm 包?我想不通这个。谢谢!
流星版本:1.4.2.3
【问题讨论】:
从 GitHub fork 获取 npm 包应该没有任何问题。你所描述的是这样做的正确方法。你可能在其他地方有错误,或者在你的 fork 代码中。 我已经放弃了。 Meteor 构建链一定有什么问题吗? npm 安装包,但 Meteor 解析器似乎没有找到它。 :-( 【参考方案1】:从 git 获取包时无法工作的主要原因是它没有配置为以这种方式工作。这不是 Meteor 特有的问题,而是 JS 开发者有时可能会遇到的问题。
对于这种特殊情况有两个问题:
package.json
中的白名单files
字段仅包含src
和dist
文件夹。这意味着当您通过 npm 获取它时,几乎所有构建代码所需的配置文件都消失了。
需要构建此包的代码才能使用您的代码。这是在作者将其发布到 npm 时完成的,但您直接从 github 获取它,因此此步骤被撤消。
因为你已经修改了这个包,所以修改package.json
如下(把我加的所有cmets都给你解释一下),push到github,再通过npm获取:
// remove the "files" field
// ...
"scripts":
// this script is used to build the package
"postinstall": "postinstall-build dist \"npm run build:commonjs\""
// ...
,
"dependencies":
// this helps build the package
"postinstall-build": "^2.1.3"
,
// ...
【讨论】:
【参考方案2】:包通常不是从 github 安装的,它们是发布的,这意味着一个包有很多版本,你可以选择你得到的。我不确定你正在做的事情是否可行,但这肯定是不可取的。
如果您想对 github 包进行更改,可以将其下载到本地计算机并执行 npm 链接,以便它使用您的本地包而不是 npm 上的包。在https://docs.npmjs.com/cli/link了解更多信息
【讨论】:
【参考方案3】:为什么不用简单的命令?
meteor npm install https://github.com/nolandg/Semantic-UI-React.git
我做到了:
meteor create test
cd test
meteor npm install
meteor add react react-dom
meteor npm install https://github.com/nolandg/Semantic-UI-React.git
meteor
并且没有错误(-:
【讨论】:
以上是关于如何从 GitHub 为 Meteor 安装 NPM 包?的主要内容,如果未能解决你的问题,请参考以下文章