使用gulp_jspm遇DEP0097警告,求替代打包工具及相关疑问
使用gulp_jspm时触发了[DEP0097] DeprecationWarning,想了解有哪些替代工具可用于生成打包文件;此前尝试gulp-jspm-build时需要添加从未用过的Node相关文件,纠结是否应该使用该工具。
当前环境版本信息:
- Node: v6.9.5
- TypeScript: 2.7.2
相关代码片段:
.pipe(gulp_jspm({ selfExecutingBundle: true }), true)
警告内容:
(node:25936) [DEP0097] DeprecationWarning: 使用MakeCallback中的domain属性已被弃用。请改用MakeCallback的async_context变体或AsyncResource类。(通过调用process上的processImmediate触发。)(使用
node --trace-deprecation ...查看警告创建位置)
关于[DEP0097]警告
这个警告源于你使用的Node v6.9.5版本偏旧,gulp_jspm内部依赖的部分模块仍在调用已被弃用的domain API。如果暂时不想更换工具,可先忽略该警告;也可以尝试将Node版本升级到v8及以上(升级前需确认TypeScript 2.7.2与新版本Node的兼容性)。
替代打包工具推荐
不必局限于gulp+jspm的组合,以下工具可满足打包需求:
- Rollup:适配TypeScript项目,原生支持Tree Shaking,配置简洁,可生成包括自执行bundle在内的多种格式打包文件。
- Webpack:生态体系完善,支持TypeScript及各类资源打包,虽配置复杂度稍高,但社区资源丰富,能覆盖绝大多数场景的打包需求。
- Parcel:零配置打包工具,可自动识别TypeScript及项目依赖,适合快速构建项目,无需编写复杂配置。
是否选择gulp-jspm-build?
如果gulp-jspm-build能匹配你的打包需求(比如生成自执行bundle、兼容现有gulp工作流),完全可以使用。所谓“从未用过的Node文件”大概率是工具所需的依赖或配置文件,比如package.json新增依赖、jspm.config.js配置文件等,按照官方文档添加即可,无额外风险。但如果该工具的配置成本过高,不如直接更换为上述现代打包工具,长期维护会更省心。
内容的提问来源于stack exchange,提问作者Jefferson

