这不是一个全新的问题,但我现在一直在寻找一段时间,我很难找到解决方案.
我正在为我的角应用程序使用一个名为angular-translate的模块.但是,我必须对源代码进行一些小的修改才能使所有内容按照我喜欢的方式运行,现在我想继续保留这些更改npm install
.一位同事建议我分叉源代码的回购并指向我的分叉回购作为依赖,我已经尝试过这些方式,例如
npm install https://github.com/myRepo/angular-translate
npm install https://github.com/myRepo/angular-translate/archive/master.tar.gz
Run Code Online (Sandbox Code Playgroud)
第一个给我一个这样的目录,没有构建.只是一个package.json,.npmignore和一些markdown文件
-angular-translate
.npmignore
.nvmrc
CHANGELOG.md
package.json
etc
Run Code Online (Sandbox Code Playgroud)
第二个npm install
给了我完整的回购,但我再也没有得到像我使用命令时的构建npm install angular-translate
.我已经看到了运行预发布脚本的一些讨论,但我不确定在安装所有模块时如何执行此操作.我也尝试将fork作为我自己的模块发布到npm注册表,但我再次没有构建,我不确定这是正确的做法...
对于我对这个话题的无知,我道歉.我对npm没有太多的经验.很想得到关于这个问题的一些反馈.当需要对包的源代码进行修改时,它似乎是一个常见的问题?也许有更好的解决方案?在此先感谢您的帮助.
我正在尝试发布我的NPM包:npm publish
.
我得到以下相当神秘的错误:
npm ERR! path c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz'
npm ERR! at Error (native)
npm ERR! { Error: EPERM: operation not permitted, unlink 'c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz'
npm ERR! at Error (native)
npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, unlink 'c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz'
npm ERR! at Error (native)
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'unlink', …
Run Code Online (Sandbox Code Playgroud) 我想知道如何配置.npmrc
文件,以便我可以拥有默认注册表和具有身份验证的不同范围注册表.
我使用Nexus作为私有存储库,我不知道如何为作用域注册表设置身份验证,只有默认注册表.
例如我的~/.npmrc
文件是:
registry=https://registry.npmjs.org/
@test-scope:registry=http://nexus:8081/nexus/content/repositories/npm-test/
email=test@user.com
_auth="…"
Run Code Online (Sandbox Code Playgroud)
如果我npm publish
为一个作用域的包test-scope
,我收到一个身份验证错误.
AFAIK,_auth
唯一适用于该registry=...
部分.有没有办法为该@test-scope:registry=...
部分指定auth密钥?
谢谢,
当我们向npm发布一个包时,它会在搜索页面中显示一些数据,如流行度,质量和维护(示例图像是打击的).我只是想知道npm如何计算质量?真的很感激,如果有人能给出一些线索.
如果您在搜索页面上查看,可以看到此信息.查看搜索页面的右侧:npm搜索"react"
所以两天前我发布了我的第一个 npm 包,一个用于修剪和加入音频文件的简单库
奇怪的是我已经获得了 111 次下载。我还没有与任何人分享过这个包。我也没有记录任何东西。自述文件实际上是空白的。这可能是一个错误吗?
我已经使用更新了我的包npm version minor
去从0.4.0到0.5.0,无一不package.json
和package-lock.json
反映这一点。但是,当我运行npm publish
命令时,它说:
您不能在以前发布的版本上发布:0.4.0
是否还有其他地方需要更新 semver 才能发布?
我有一个使用 NX 和 Angular 的 monorepo,我正在向 NPM 发布一些库,我有以下场景
\napps\n only_App\nlibs\n lib_A // v1.0.0\n lib_B // v1.0.0\n lib_C // v1.0.0\n
Run Code Online (Sandbox Code Playgroud)\nlib_A 依赖于 lib_B 和 lib_C。
\n在预构建的package.json中lib_A
没有\xe2\x80\x99t 有任何peerDependency
并且在我构建它之前发布它之后,自动添加对等依赖项,例如
// BUILT lib_A/package.json\n\n{\n...,\n"peerDependencies":{\n "@myScope/lib-b": "1.0.0", //specifically that version\n "@myScope/lib-c": "1.0.0",\n}\n}\n
Run Code Online (Sandbox Code Playgroud)\n问题是当我lib_A
在另一个项目中发布并使用它时(在 NX 和此存储库之外)。它总是期望我使用lib_B
v1.0.0 lib_C
, \n如果我打补丁lib_B
将其升级到v1.0.1,那么我也被迫重建lib_A
更新peerDependency版本。也发布lib_A
和升级lib_A
版本。
有没有办法可以配置它,以便在构建时lib_A
将其添加^
到我的库中?IE
// BUILT lib_A/package.json\n\n{\n...,\n"peerDependencies":{\n "@myScope/lib-b": "^1.0.0", //automatically …
Run Code Online (Sandbox Code Playgroud) 考虑到Node.js包管理器,即npm - 如果发布命令在发布之前执行pack命令或者它是否完全不同,我很好奇?所以,如果我要执行:
npm publish <folder>
Run Code Online (Sandbox Code Playgroud)
它首先执行以下操作:
npm pack <folder>
Run Code Online (Sandbox Code Playgroud)
npm publish
没有明确npm pack
之前,但不包出现有预期的内容.即; 的内容.tgz
,当我执行本地不同npm pack
到的内容npm publish
. 我在我的 monorepo 中使用 lerna 和 Yarn 工作区。包结构如下所示:
root
`--- packages
|--- pkg1
| |--- src
| | `--- index.ts
| `--- dist
| `--- index.js
`--- pkg2
|--- src
| `--- index.ts
`--- dist
`--- index.js
Run Code Online (Sandbox Code Playgroud)
src
文件夹被编译到dist
文件夹中。dist
文件夹,以便导入工作不需要main
package.json 中指向dist
文件夹内部的条目。这很容易用 lerna: 来完成lerna publish --contents dist
。这对于需要使用此存储库的外部项目来说效果很好,但它在存储库本身中不起作用。例如,如果pkg2
, 取决于pkg1
,它会在 处查找 pkg1 的 index.js 文件,pkg1/index.js
而实际上编译后的版本位于 下pkg1/dist/index.js
。我怎样才能做到这一点?
PS我已经在像material-ui这样的存储库中看到了这项工作,但我无法解释它是如何在那里工作的!
NPM 能够创建具有将包发布到 NPM 注册表的权限的访问令牌,假设您已将包设置设置为“发布访问”中的“需要双因素身份验证或自动化令牌”(因此隐含地要求我认为 2FA 已启用)。
如何使用该令牌进行发布?我检查了npm publish
-- 它要求输入 OTP 代码(作为提示或标志)的输出,在我启用 2FA 之前,它再次要求我输入密码。使用固定令牌比启动我的身份验证器应用程序更容易。我可以禁用 2FA,但让令牌正常工作更好。
npm-publish ×10
npm ×9
node.js ×3
javascript ×2
npm-install ×2
angular ×1
git-fork ×1
github ×1
lerna ×1
nexus ×1
ng-packagr ×1
npmjs ×1
nrwl ×1