首页 > 解决方案 > npm 错误!不是尝试为命名空间包创建二进制文件时的子项

问题描述

我有一个包含以下内容的包裹package.json

{
    "name": "@namespace/package",
    "version": "0.0.1",
    "bin": {
        "@namespace/package": "bin/package",
        "package": "bin/package"
    },
    "publishConfig": {
        "access": "public"
    },
    "scripts": {
        "prepublishOnly": "npm run build"
    },
    "files": [
        "lib",
        "bin"
    ],
    "main": "lib/index.js",
    "license": "MIT",
    ...
}

我希望我的包作为 cli 工作,所以我在我package.json的 .

npm ERR! /var/lib/teamcity/BuildAgents/dataui-qyp-02/work/c3e015ff769f8dfa/node_modules/.bin/package is not a child of /var/lib/teamcity/BuildAgents/dataui-qyp-02/work/c3e015ff769f8dfa/node_modules/.bin/@namespace

我在这里做错了什么?

标签: npm

解决方案


显然,如果您仔细阅读npm 文档,它会说 bin 是可执行文件名称到可执行文件路径的映射,因此/在可执行文件名称中包含 a 可能不是一个好主意,因此解决方法是从以下行中删除package.json

"@namespace/package": "bin/package",

推荐阅读