Javascript 我需要一个包作为依赖项和依赖项

Javascript 我需要一个包作为依赖项和依赖项,javascript,npm,Javascript,Npm,我遇到了一个问题,即我需要与依赖项以及devDependency相同的包 有问题的软件包是@babel/core和@babel/preset env 为什么? 因为我的包提供了一个接口,可以在将来传输项目的其他部分: 项目源代码通过babel传输(这是开发人员依赖项部分) 传输的源代码发布在NPM上 在第二步中,从npm传输的项目源通过webpack运行(webpack使用babel loader,因此需要@babel/core)。此步骤由最终用户通过webpack完成 我想在软件包中包含每

我遇到了一个问题,即我需要与
依赖项
以及
devDependency
相同的包

有问题的软件包是
@babel/core
@babel/preset env

为什么?

因为我的包提供了一个接口,可以在将来传输项目的其他部分:

  • 项目源代码通过babel传输(这是开发人员依赖项部分)
  • 传输的源代码发布在NPM上
  • 在第二步中,从npm传输的项目源通过webpack运行(webpack使用
    babel loader
    ,因此需要
    @babel/core
    )。此步骤由最终用户通过
    webpack
    完成
我想在软件包中包含每个开发资产(Web包除外),这样最终用户就不需要安装
babel loader
@babel/core

我曾考虑将它们作为依赖项添加,但这似乎不干净

也许这是一个
X/Y
问题

有效的方法是:

  • 创建另一个名为
    xxx dev dependencies
    的包
  • 将网页包透明步骤的依赖项添加到该包中
  • 需要软件包并将模块传递到webpack
但是。。。安装dev依赖项包时,我总是收到以下警告:

巴别塔-loader@8.1.0需要webpack@>=2的对等方,但未安装任何对等方。您必须自己安装对等依赖项

即使我向
peerDependencies
添加了webpack,如下所示:

  "name": "xxx-dev-dependencies",
  "dependencies": {
    "@babel/core": "^7.9.6",
    "@babel/preset-env": "^7.9.6",
    "babel-loader": "^8.1.0"
  },
  "peerDependencies": {
    "webpack": "4.x"
  }

我找到了一个解决方案,但它仍然有点不成熟:

  • 我的项目

    • 开发依赖项
      • @babel/core
      • @babel/preset env
      • 我的项目开发部门
  • 我的项目开发部

    • 依赖关系
      • @babel/core
      • @babel/preset env
      • babel加载器
      • webpack
        (用于消除对等依赖警告)
    • 对等依赖
      • webpack
        (用于确保最终用户实际安装了webpack)
myproject dev deps
仅导出如下依赖项:

  "name": "xxx-dev-dependencies",
  "dependencies": {
    "@babel/core": "^7.9.6",
    "@babel/preset-env": "^7.9.6",
    "babel-loader": "^8.1.0"
  },
  "peerDependencies": {
    "webpack": "4.x"
  }
var path=require(“路径”)
module.exports={
巴别塔:{
loader:path.resolve(\uuuu dirname,“node\u modules”,“babel loader”),
预设:[
解析(uuu dirname,“节点模块”,“@babel”,“预设环境”)
]
}
}
my project
然后需要
my project dev deps
并按如下方式使用它:

  "name": "xxx-dev-dependencies",
  "dependencies": {
    "@babel/core": "^7.9.6",
    "@babel/preset-env": "^7.9.6",
    "babel-loader": "^8.1.0"
  },
  "peerDependencies": {
    "webpack": "4.x"
  }
var-dep=require(“我的项目开发部门”)
// ..
模块:{
规则:[{
测试:/\.js$/,,
使用:{
加载器:副巴别塔加载器,
选项:{
预设:副巴别塔预设
}
}
}]
}

我已经手动验证了webpack将使用
@babel/core
版本,该版本包含在
我的项目开发deps
包中。

您可以安全地忽略此警告-您的用户将始终将webpack安装为其自己项目的一部分。是的,但是当同一警告多次弹出时,它会变得非常烦人。对于每个我添加的加载器npm发出警告。此外,为什么在控制台上乱扔不必要的/误导性的警告?