gpt4 book ai didi

javascript - NPM npm_package_main 变量始终为空

转载 作者:行者123 更新时间:2023-12-04 08:10:42 24 4
gpt4 key购买 nike

问题
新品管理 $npm_package_main变量始终为空。

  • 当我使用 "main": "index.js" 设置 package.json 文件时
  • 将脚本中的“start”属性设置为"start": "node $npm_package_main"
  • 然后运行 ​​npm start

  • 问题 :CLI 执行 Node REPL 模式,忽略 package.json 中的“main”变量。
    预期行为 : 执行命令为 node index.js .
    环境
  • Linux Ubuntu 20.04.1
  • npm -v = 7.3.0
  • node -v = v15.5.0
  • npm run env | grep npm_package_name = npm_package_name=app
  • npm run env | grep npm_package_main = 空

  • 如何重现
  • 创建“app”目录,进入新目录
  • 创建一个包含以下内容的“index.js”文件console.log('HELLO');
  • 运行npm init并按 ENTER 回答所有问题
  • 编辑package.json文件并将以下行添加到“脚本”属性:"start": "node $npm_package_main",
  • 现在你的 package.json 必须看起来像
  •     {
    "name": "app",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "devDependencies": {},
    "scripts": {
    "start": "node $npm_package_main",
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC"
    }
  • 运行“npm start”
  • 文件“index.js”未执行,Node 进入 REPL 模式。

  • 尝试
    设置“start”并运行“npm start”:
  • "echo $npm_package_main"不打印
  • "echo $npm_package_name"打印 "app"
  • "echo $npm_package_version"打印 "1.0.0"

  • 引用
  • NPM package.json 变量:https://docs.npmjs.com/cli/v7/using-npm/scripts
  • NPM Github 问题:https://github.com/npm/cli/issues/2585
  • 最佳答案

  • NPM 的官方回答:使用“node .”。这种行为没有官方理由,直到这篇文章。
  • 根据文档,当在其他项目中用作模块时,“main”属性包含应用程序的入口点:https://docs.npmjs.com/cli/v7/configuring-npm/package-json#main

  • 解决方案
  • 请改用“config”属性:
  • {
    "name": "app",
    "version": "1.0.0",
    "description": "",
    "devDependencies": {},
    "config": {
    "main": "index.js"
    },
    "scripts": {
    "start": "node $npm_package_config_main",
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC"
    }
  • 运行“npm start”
  • 它有效

  • 引用:
  • https://github.com/npm/cli/issues/2585
  • https://github.com/npm/cli/pull/2446
  • 关于javascript - NPM npm_package_main 变量始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65982127/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com