繁体   English   中英

将外部库捆绑到我自己的JavaScript库中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM