New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.19.4版本forcePublishWithScope配置无效 #1221

Open
stoneChen opened this Issue Sep 4, 2017 · 7 comments

Comments

Projects
None yet
4 participants
@stoneChen
Contributor

stoneChen commented Sep 4, 2017

关于forcePublishWithScope的文档说明,已经是2014年7月的了,不知是否功能改过了而文档没有更新。

2.12.2版本即使管理员也不能发布不带scope的包,这应该是合理的。

2.19.4版本的表现是:
普通登陆用户,只能发布带scope前缀的包(无论服务端是否设置了scopes字段),
管理员用户,可以发布任意名字的包,包括带scope和不带scope的包。

而2.19.4版本的表现,表示不理解。

@fengmk2

This comment has been minimized.

Show comment
Hide comment
@fengmk2

fengmk2 Sep 4, 2017

Member

只有配置来 https://github.com/cnpm/cnpmjs.org/blob/master/config/index.js#L155 privatePackages 参数的模块,才能不带 scope 的,其他情况一定要带 scope 才能发布,不管管理员还是普通用户。

Member

fengmk2 commented Sep 4, 2017

只有配置来 https://github.com/cnpm/cnpmjs.org/blob/master/config/index.js#L155 privatePackages 参数的模块,才能不带 scope 的,其他情况一定要带 scope 才能发布,不管管理员还是普通用户。

@stoneChen

This comment has been minimized.

Show comment
Hide comment
@stoneChen

stoneChen Sep 4, 2017

Contributor

@fengmk2 莫非是我哪里姿势不对么?我是用cnpmjs.org全局命令起的服务。刚又做了个测试,我确认没有配置privatePackages字段:
cli 2x
qq20170904-135155

Contributor

stoneChen commented Sep 4, 2017

@fengmk2 莫非是我哪里姿势不对么?我是用cnpmjs.org全局命令起的服务。刚又做了个测试,我确认没有配置privatePackages字段:
cli 2x
qq20170904-135155

@fengmk2

This comment has been minimized.

Show comment
Hide comment
@fengmk2

fengmk2 Sep 4, 2017

Member

那就是代码有bug了

Member

fengmk2 commented Sep 4, 2017

那就是代码有bug了

@stoneChen

This comment has been minimized.

Show comment
Hide comment
@stoneChen

stoneChen Sep 4, 2017

Contributor

囧,不过暂时可以通过设置enablePrivate: false,降低影响面(让其他人通过普通用户发包,而不是管理员),只要管理员别乱来就行。
另外,还有个停服命令的问题,请关注一下我提的PR,谢谢~
快速通道:#1220

Contributor

stoneChen commented Sep 4, 2017

囧,不过暂时可以通过设置enablePrivate: false,降低影响面(让其他人通过普通用户发包,而不是管理员),只要管理员别乱来就行。
另外,还有个停服命令的问题,请关注一下我提的PR,谢谢~
快速通道:#1220

@zhump

This comment has been minimized.

Show comment
Hide comment
@zhump

zhump Nov 28, 2017

@stoneChen #1262
能帮忙看看吗?版本 3.0.0-alpha.16 我切了2.19也不行

zhump commented Nov 28, 2017

@stoneChen #1262
能帮忙看看吗?版本 3.0.0-alpha.16 我切了2.19也不行

@AntSworD

This comment has been minimized.

Show comment
Hide comment
@AntSworD

AntSworD Mar 16, 2018

我发现如果没有配置 forcePublishWithScope 同样不能推非 scope 的模块包,全局搜索也没看到对应配置的代码,是文档陈旧了么

AntSworD commented Mar 16, 2018

我发现如果没有配置 forcePublishWithScope 同样不能推非 scope 的模块包,全局搜索也没看到对应配置的代码,是文档陈旧了么

@stoneChen

This comment has been minimized.

Show comment
Hide comment
@stoneChen

stoneChen Mar 17, 2018

Contributor

@zhump 我是通过新建cnpmjs.org/config/config.js来设置配置的(最终会覆盖隔壁的index.js配置),附上我的配置(敏感信息已屏蔽):

module.exports = {
    debug: false,
    scopes: [
      "@xxx"
    ],
    enableCluster: true, // enable cluster mode
    enablePrivate: false, // enable private mode, only admin can publish, other use just can sync package from source npm
    enableCompress: true,
    syncModel: 'exist', // 'none', 'all', 'exist', 推荐exist模式
    registryHost: '',
    database: {
        db: 'cnpmjs',
        username: 'xxx',
        password: 'xxx',
        dialect: 'mysql', // 这句是重点
        host: 'localhost',
        port: 3306, // mysql默认端口
        pool: {
          maxConnections: 10,
          minConnections: 0,
          maxIdleTime: 30000
        },
        logging: false  // 不打印数据库log日志
    },
    admins: {
      xxx: 'yyy@zzz.com' // 邮箱没有其他相关逻辑,可随意指定
    },
  };

数据库与cnpmjs.org服务在同一台机器。
如果不涉及新老cnpmjs.org服务scope包同步问题,以上配置可以比较良好的与npm运行。
如果涉及同步问题,就比较折腾了,可以参考 cnpm/cnpm#222 ,请做好心理准备,过程很坎坷。

近期,意外发现npm@5.6.0 在某新用户执行npm login(或npm adduser,其实就是别名)时,虽然客户端显示成功,但是数据库里依然没有刚注册的数据,一顿排查后发现是npm@5.6.0的bug(未提交mail参数),升级到5.7.x(降级也可以)即可解决问题。

@AntSworD 『如果没有配置 forcePublishWithScope 同样不能推非 scope 的模块包』是这样的。
我是希望设置forcePublishWithScope: true之后, 连admin也不能发布scope的包。
不过目前,只有我是管理员,我自己自觉就好,其他人是只能发布scope的包,也算可以规避这个问题。

Contributor

stoneChen commented Mar 17, 2018

@zhump 我是通过新建cnpmjs.org/config/config.js来设置配置的(最终会覆盖隔壁的index.js配置),附上我的配置(敏感信息已屏蔽):

module.exports = {
    debug: false,
    scopes: [
      "@xxx"
    ],
    enableCluster: true, // enable cluster mode
    enablePrivate: false, // enable private mode, only admin can publish, other use just can sync package from source npm
    enableCompress: true,
    syncModel: 'exist', // 'none', 'all', 'exist', 推荐exist模式
    registryHost: '',
    database: {
        db: 'cnpmjs',
        username: 'xxx',
        password: 'xxx',
        dialect: 'mysql', // 这句是重点
        host: 'localhost',
        port: 3306, // mysql默认端口
        pool: {
          maxConnections: 10,
          minConnections: 0,
          maxIdleTime: 30000
        },
        logging: false  // 不打印数据库log日志
    },
    admins: {
      xxx: 'yyy@zzz.com' // 邮箱没有其他相关逻辑,可随意指定
    },
  };

数据库与cnpmjs.org服务在同一台机器。
如果不涉及新老cnpmjs.org服务scope包同步问题,以上配置可以比较良好的与npm运行。
如果涉及同步问题,就比较折腾了,可以参考 cnpm/cnpm#222 ,请做好心理准备,过程很坎坷。

近期,意外发现npm@5.6.0 在某新用户执行npm login(或npm adduser,其实就是别名)时,虽然客户端显示成功,但是数据库里依然没有刚注册的数据,一顿排查后发现是npm@5.6.0的bug(未提交mail参数),升级到5.7.x(降级也可以)即可解决问题。

@AntSworD 『如果没有配置 forcePublishWithScope 同样不能推非 scope 的模块包』是这样的。
我是希望设置forcePublishWithScope: true之后, 连admin也不能发布scope的包。
不过目前,只有我是管理员,我自己自觉就好,其他人是只能发布scope的包,也算可以规避这个问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment