如何使用Webpack仅导入bluebird.js的核心版本?
如何在Webpack中仅导入Bluebird的核心版本?
嘿,这个问题其实挺常见的,官方入门页没提Webpack场景下的用法,但操作起来很简单,给你两种实用方案:
直接导入核心版本文件
首先确保你已经通过npm安装了Bluebird:
npm install bluebird --save
然后在代码里别用默认的import Promise from 'bluebird'(这会导入完整版本),直接指定核心版本的入口文件就行:
// 浏览器环境推荐用这个压缩后的路径 import Promise from 'bluebird/js/browser/bluebird.core.min.js' // 也可以选未压缩版本(Webpack会帮你做压缩优化) import Promise from 'bluebird/js/release/bluebird.core.js'
这样Webpack只会打包Bluebird的核心代码,砍掉了完整版本里的非核心工具方法,能有效减小构建体积。
用Webpack别名简化导入
如果你不想在每个文件里都写长长的路径,可以在Webpack配置里加个别名,以后直接用import Promise from 'bluebird'就会自动指向核心版本:
在webpack.config.js中添加配置:
module.exports = { // ...其他配置项 resolve: { alias: { 'bluebird': 'bluebird/js/browser/bluebird.core.min.js' } } }
配置后,所有导入bluebird的地方都会自动替换成核心版本,不用修改业务代码,非常省心。
需要注意的是,核心版本只保留了Promise的基础标准API(比如then、catch、all、race这些),如果你用到了Bluebird的扩展工具(比如Promise.promisifyAll、Promise.mapSeries这类),核心版本可能没有这些功能,这时候就得权衡体积和功能需求啦。
内容的提问来源于stack exchange,提问作者alexk
相关产品推荐
相关产品推荐

