我在GitHub上分叉了一个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
答案 0 :(得分:3)
从git获取时包不起作用的主要原因是因为它没有配置为以这种方式工作。这不是Meteor特定的问题,而是JS开发人员有时可能遇到的问题。
对于这种特殊情况,有两个问题:
package.json
中的白名单files
字段仅包含src
和dist
文件夹。这意味着当您通过npm获取它时,几乎所有构建代码所需的配置文件都将消失。因为你已经在民间并修改了包,所以让我们修改package.json
如下(删除我添加它们的所有注释以给你一些解释),将它推送到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"
},
// ...
答案 1 :(得分:0)
通常不会从github安装软件包,它们是已发布的,这意味着可以使用许多版本的软件包,您可以选择所获得的软件包。我不确定你所做的事情是否可行,但这肯定是不可取的。
如果您想对github软件包进行更改,可以将其下载到本地计算机并执行npm链接,以便它使用您的本地软件包而不是npm上的软件包。在https://docs.npmjs.com/cli/link
了解详情答案 2 :(得分:0)
为什么不使用简单命令?
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
没有错误( - :