如何发布NPM作用域包 / NPM作用域未找到?

35
我想开始发布npm包到一个范围。我需要以该范围作为我的用户名注册用户吗?例如,如果我像这样创建一个包:

我希望开始将npm软件包发布到作用域中。我需要使用作用域作为我的用户名进行用户注册吗?例如,如果我创建了这样的软件包:

    ole@MKI:~/firstpackage$ npm init

    Use `npm install <pkg> --save` afterwards to install a package and
    save it as a dependency in the package.json file.

    Press ^C at any time to quit.
    name: (firstpackage) @npmtestscope/firstpackage
    version: (1.0.0) 
    description: 
    entry point: (index.js) 
    test command: 
    git repository: 
    keywords: 
    author: 
    license: (ISC) 
    About to write to /home/ole/deletethis/package.json:

    {
      "name": "@npmtestscope/firstpackage",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }


    Is this ok? (yes) 

    ole@MKI:~/firstpackage$ touch README.md
    ole@MKI:~/firstpackage$ npm publish

这是结果:

npm ERR! 404 Scope not found : @npmtestscope/firstpackage

那么我需要做什么才能让 npm 找到这个作用域?


1
为了在npm上创建一个组织,使您能够发布包到您的作用域,请完成此页面上的步骤1、2和3:https://www.npmjs.com/docs/orgs/getting-started.html - Nicolas Oliver
1
如果您想要@npmtestscope,您必须创建一个npmtestscope组织https://www.npmjs.com/docs/orgs/。 - Nicolas Oliver
因此有必要支付。 - Webwoman
1
不适用于公共存储库。我认为除了注册组织之外,您需要做的唯一其他事情就是在第一次发布时使用“--access public”标志。 - Ole
1
您可以在 https://www.npmjs.com/org/create 上创建npm组织。如果您已经创建了组织,那么您可以使用“npm publish --access public”发布您的命名空间包。 - Benny Code
2
@BennyNeugebauer 也许可以把那个作为答案。 - Ole
1个回答

58
如果你想使用名称为@npmtestscope/firstpackage在npm上发布一个包,你需要确保命名空间@npmtestscope 存在于npm上。 要创建该命名空间,需要使用名称npmtestscope在 npm 上创建一个组织
创建完组织后,你可以通过执行npm publish --access public来发布名为@npmtestscope/firstpackage的包。 注意: 要为属于npm组织的包运行npm publish,你需要作为该组织成员登录到计算机上。 你可以通过执行npm login进行登录。 命令npm whoami将显示与当前登录关联的用户名。

2
啊,登录部分对我来说是必要的步骤,我以前的账户已经登录了,我需要更新它。 - PhiLho
1
非常感谢您的帮助!我在处理这个作用域包的问题上遇到了困难! - Haneen Mahdin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接