javascript - 如何使用 Rollup.js 创建一个通用的 js 和命名的导出包?
问题描述
我想使用 Rollup.js 生成一个供 AWS Lambda 使用的文件。捆绑包必须:
- 做个普通人;
- 已命名出口;
- 解析节点包并将所有代码放在一个文件中。
我正在努力实现这一目标,但没有成功。我当前的配置没有将 Day.js 代码添加到最终包中。
一些注意事项
汇总和包版本
"@rollup/plugin-commonjs": "^17.0.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.0.0",
"@rollup/plugin-typescript": "^8.0.0",
"rollup": "^2.34.2",
最终捆绑
生成的包可以在这里看到。我不希望文件中有这些导入:
const tslib_1 = require("tslib");
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
相反,我希望所有必要的代码都来自文件tslib
并dayjs
嵌入到文件中。
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs"
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"]
}
解决方案
事实是您将文件tsc
编译ts
回commonjs
导致问题。这个工作应该是rollup
's 代替。
我建议您将编译器留给tsc
(esnext
这esm
是rollup
需要的),然后您可以将所有东西与cjs
样式结合起来。
这是您可能需要更改的内容:
typescript({
module: 'esnext' // change `commonjs` -> `esnext`
}),
推荐阅读
- git - 将本地更改合并到主分支,然后撤消主分支中的一些更改,现在我无法从本地分支提交更改
- java - 如何使 Autowired 在配置类中工作?
- laravel - 使用表单验证调用未定义的方法 Illuminate\Database\Query\Builder::withTrashed()
- list - Power BI - DAX 度量以引用值列表。计算每个经纪人的净营业额 - 更优雅的解决方案?
- docker - Windows Docker 容器没有 NAT IP 地址。无法在本地访问容器
- json - 从 Groovy 中的 JSON 响应中获取值
- python - 关于如何在 Keras 中构建 CNN 1D 的正确和明确的解释
- nightwatch.js - 如何在守夜人中发送按键组合
- python - Python 数字列表不是 JSON 可序列化的
- c# - 有没有办法检测滚动视图何时到达 Xamarin 的底部?