NPM无法发布依赖项。

4

我一直在使用Node和npm包作为CLI应用程序。 我有一个包含正确填写的package.json的项目。 当我通过WebStorm使用不同的参数运行应用程序时,一切都正常。 但是,如果我发布npm包...就没有依赖项... npm网站找不到其中任何一个...并且当我安装CLI应用程序时,运行失败,因为它没有拉取依赖项...

这是我的package.json文件:

 {
  "name": "wmg",
  "version": "0.0.8",
  "description": "A Commandline Foolin around",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/Arvraepe/wmg.git"
  },
  "keywords": ["Stuff", "Foolin"],
  "target": "main",
  "preferGlobal": true,
  "bin": {
    "wmg": "wmg.js"
  },
  "author": "Arne Van Raepenbusch <arvraepe@gmail.com>",
  "license": "ISC",
  "devDependencies": {
    "prompt": "^0.2.14",
    "restify": "^3.0.3",
    "underscore": "^1.8.3"
  }
}

我尝试运行pakmanager deps,但是出现了一个奇怪的错误。
======================= WARNING =======================
Assuming browser mode by default is deprecated.
  Include browserDependencies in your package.json
  -- OR --
  pakmanager -e browser build

In the next release of pakmanager, the node environment will be assumed as default
=======================================================


Targeted Environment: browser
[[[deps]]]
[ERROR] The following packages are `require`d, but not in the package, nor on npm:
  wmg
pakmanager {}


======================= WARNING =======================
Assuming browser mode by default is deprecated.
  Include browserDependencies in your package.json
  -- OR --
  pakmanager -e browser build

In the next release of pakmanager, the node environment will be assumed as default
=======================================================

我的包不应该依赖于自己吧?

有人能给我更多解释吗?


建议:1)分而治之:尝试使用不同的、最小化的 package.json 文件,看看是否可以隔离问题。2)查看这里可能存在的版本语法问题。3)查看这里可能存在的“dependencies”与“devDependencies”问题。祝你好运 - 并请回复你发现了什么! - paulsm4
2个回答

4

我看了你的包,正如其他人指出的那样,你列出了 devDependencies 但没有列出 dependencies。通常情况下,devDependencies 是用于测试框架等工具,这些工具是你开发包时需要的,但不是使用它时必需的。你的应用程序中使用了 promptrestify,应该将它们列在 dependencies 对象中,而不是 devDependencies 中。


这可能是因为我使用了NPM安装提示--save-dev,例如...?当我查看节点包时,它们都在末尾放置--save-dev以将其保存在您的软件包文件中...我认为这已经足够好了。不过,你所说的完全有道理。 - Arninja
1
@Arninja: 对于实际的依赖项,请使用 --save 而不是 --save-dev。 - slebetman
我现在明白了。这太明显了,以至于变得有些尴尬;-)但是,一切都好就好。感谢您提供的所有帮助、信息和提示! - Arninja
我的 package.json 文件中有 "dependencies" 而不是 "devDependencies",我正遇到这个确切的错误 :/ - GabrielBB

1

您的package.json文件中没有依赖项。只有devDependencies,npm认为这些仅用于开发(例如mocha)且不需要安装。

如果您的任何devDependencies是实际用户依赖项,请将它们移动到dependencies中。


你说得对!但是我无法设置两个答案为固定的...谢谢你的时间! - Arninja

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