![](/img/trans.png)
[英]How to bundle javascript files with one external library with rollup.js?
[英]Bundle external lib to my own javascript library
我正在尝试构建一个库,我想使用fabricjs作为其依赖项之一。 对于那些已经安装了结构的用户,他们知道安装它并不是一件容易的事(它需要特定的库,特定的节点版本等)。 我已成功将软件包安装到我的项目中,并成功使用了它。
我想知道的是,将我的特定库作为软件包发布到npm Registry。
我的问题是我发布了我的软件包,当有人要安装我的软件包时,我将相同的复杂性“转移”给了她/他。 我的库用户如何在不先执行与安装fabricjs软件包本身相同的步骤的情况下安装它?
我查看了bundledDependencies属性,但是收效甚微 。
我不是在考虑自己是一名JavaScript专家,所以也许我的问题从根本上是错误的。
我目前正在使用npm,如果可以胜任,我也熟悉webpack。 要发布我的内容(来自package.json):
"scripts": {
"build": "babel ./src --out-dir ./lib",
...
最后,我设法通过webpack帮助弄清了问题,解决方案是使用webpack进行构建,所有库都将捆绑在一个文件中,详细说明:
1)如下创建一个webpack配置(让我们说webpack.cfg.js)( 在此处帮助):
module.exports = {
entry: {
src: './src'
},
output: {
path: path.join(__dirname, 'lib'),
filename: 'index.js',
libraryTarget: 'umd'
},
//Use externals to exclude libraries
//externals: ['lodash'],
resolve: {
extensions: ['', '.js']
},
module: {
loaders: [
{
test: /\.(js|jsx)$/,
include: [srcPath],
exclude: /(node_modules|bower_components|lib)/,
loaders: ['babel']
}
]
}
...
}
2)然后使用以下命令进行构建:
"scripts": {
"build": "webpack --config webpack.cfg.js --display-modules",
....
}
而且它的工作原理是,任何外部库都包含在生成的index.js中,就像胖子罐(对于Java世界)
我的2美分
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.