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
babel loader
,@babel/core
等
我曾考虑将它们作为依赖项添加,但这似乎不干净
也许这是一个X/Y
问题
有效的方法是:
- 创建另一个名为
的包xxx dev dependencies
- 将网页包透明步骤的依赖项添加到该包中
- 需要软件包并将模块传递到webpack
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发出警告。此外,为什么在控制台上乱扔不必要的/误导性的警告?