【问题标题】:How to resolve gulp dependencies while creating a NPM package创建 NPM 包时如何解决 gulp 依赖项
【发布时间】:2016-12-11 13:11:25
【问题描述】:

我有一个 nodeJs 应用程序(演示),它使用commander 包来获取命令行参数并使用gulp 来表示

  1. 构建
  2. 文档
  3. 测试
  4. 覆盖范围

此功能运行良好,但现在我需要将此应用程序作为 NPM 包移动。

更改是根据 NPM 包完成的,但是当我从本地位置将其安装为 NPM 包 npm install ../demo/ 时。

它要求以下 gulp 依赖项:-

  1. 找不到模块gulp
  2. 找不到模块gulp-load-plugins
  3. 找不到模块del
  4. 找不到模块gulp-plumber
  5. 找不到模块gulp-eslint
  6. 找不到模块babel-eslint
  7. 找不到模块gulp-debug
  8. 找不到模块gulp-sourcemaps
  9. 找不到模块gulp-babel

每次我回到 npm 包(我创建的)目录并运行像npm install gulp --save-devnpm install del --save-dev 等错误一样出现的命令。

我还在 package.json 中定义了这些依赖项,但它仍然抛出错误。

有什么办法可以解决这个问题。

package.json

{
  "name": "demo",
  "version": "0.0.1",
  "description": "",
  "main": "./dist/index.js",
  "license": "SEE LICENSE IN LICENSE.md",
  "keywords": [],
  "scripts": {
    "build": "gulp build",
    "coverage": "gulp coverage",
    "docs": "gulp docs",
    "prepublish": "gulp build",
    "test": "gulp test"
  },
  "dependencies": {
    "autobind-decorator": "^1.3.3",
    "babel-polyfill": "^6.6.1",
    "commander": "^2.9.0",
    "lodash": "^4.0.0",
    "mustache": "^2.2.1",
    "source-map-support": "^0.4.0",
    "wrench": "^1.5.8",
    "ms": "^0.7.1"
    "babel-eslint": "^6.0.4",
    "babel-plugin-lodash": "^2.2.1",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-nodejs-lts": "^1.2.2",
    "chai": "^3.5.0",
    "del": "^2.2.0",
    "esdoc-es7-plugin": "^0.0.3",
    "gulp": "^3.9.1",
    "gulp-babel": "^6.1.2",
    "gulp-babel-istanbul": "^1.1.0",
    "gulp-debug": "^2.1.2",
    "gulp-esdoc": "^0.2.0",
    "gulp-eslint": "^2.0.0",
    "gulp-filter": "^4.0.0",
    "gulp-inject-modules": "^0.1.1",
    "gulp-load-plugins": "^1.2.2",
    "gulp-mocha": "^2.2.0",
    "gulp-plumber": "^1.1.0",
    "gulp-sourcemaps": "^2.0.0-alpha",
    "sinon": "^1.17.4",
    "sinon-chai": "^2.8.0",
    "btoa": "^1.1.2",
    "superagent": "^2.1.0"
  },
  "engines": {
    "node": ">=4.0.0"
  }
}

我把所有的东西都放在dependencies。我尝试过这种方式,但遇到了同样的问题。

npm install ../demo/
npm WARN package.json demo_project@1.0.0 No description
npm WARN package.json demo_project@1.0.0 No repository field.
npm WARN package.json demo_project@1.0.0 No README data

> demo@0.0.1 prepublish /work/demo
> gulp build

[16:53:33] Local gulp not found in ~/work/demo
[16:53:33] Try running: npm install gulp

【问题讨论】:

    标签: node.js npm gulp dependencies


    【解决方案1】:

    虽然documentation 没有提到它,但npm install folder 只安装dependencies 而不是devDependencies。这可能有点令人困惑,因为在包文件夹中运行 npm install 会安装 both dependenciesand devDependencies

    所以尝试安装gulp,其余的都安装为npm install --save gulp(不是 --save-dev)


    更新:添加package.json后:

    package.jsondevDependencies 下的所有内容都应在 dependencies 下:

    {
      "name": "demo",
      "version": "0.0.1",
      "description": "",
      "main": "./dist/index.js",
      "license": "SEE LICENSE IN LICENSE.md",
      "keywords": [],
      "scripts": {
        "build": "gulp build",
        "coverage": "gulp coverage",
        "docs": "gulp docs",
        "prepublish": "gulp build",
        "test": "gulp test"
      },
      "dependencies": {
        "autobind-decorator": "^1.3.3",
        "babel-polyfill": "^6.6.1",
        "commander": "^2.9.0",
        "lodash": "^4.0.0",
        "mustache": "^2.2.1",
        "source-map-support": "^0.4.0",
        "wrench": "^1.5.8",
        "ms": "^0.7.1",
        "babel-eslint": "^6.0.4",
        "babel-plugin-lodash": "^2.2.1",
        "babel-plugin-transform-decorators-legacy": "^1.3.4",
        "babel-preset-nodejs-lts": "^1.2.2",
        "chai": "^3.5.0",
        "del": "^2.2.0",
        "esdoc-es7-plugin": "^0.0.3",
        "gulp": "^3.9.1",
        "gulp-babel": "^6.1.2",
        "gulp-babel-istanbul": "^1.1.0",
        "gulp-debug": "^2.1.2",
        "gulp-esdoc": "^0.2.0",
        "gulp-eslint": "^2.0.0",
        "gulp-filter": "^4.0.0",
        "gulp-inject-modules": "^0.1.1",
        "gulp-load-plugins": "^1.2.2",
        "gulp-mocha": "^2.2.0",
        "gulp-plumber": "^1.1.0",
        "gulp-sourcemaps": "^2.0.0-alpha",
        "sinon": "^1.17.4",
        "sinon-chai": "^2.8.0",
        "btoa": "^1.1.2",
        "superagent": "^2.1.0"
      },
      "engines": {
        "node": ">=4.0.0"
      }
    }
    

    【讨论】:

    • 我看到了documentation,我在发布之前测试了 npm 包。我还在 package.json 文件中定义了上述依赖项。
    • 但是您将它们安装为devDependencies 而不是正常的dependencies。不同之处在于使用--save-dev 而不是使用--save 标志和npm install
    • 我不想安装它们。我想要的是每当我做npm install ../demo/。所有依赖项都会自动安装。
    • 添加你的package.json我会告诉你我的意思。
    • 已添加package.json
    猜你喜欢
    • 2022-10-30
    • 2021-09-10
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2023-02-02
    • 2017-12-17
    • 2014-04-14
    相关资源
    最近更新 更多