Rollup 不会捆绑 proptypes 依赖
Rollup Won't Bundle Proptypes Dependency
我正在尝试构建一个 React 组件库。我想将我的道具类型作为文档保存在库中,而不是在构建时删除它们。问题是 rollup 没有捆绑所有的 prop-types 函数。
我最终在我的包中得到了这些行:
var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
var checkPropTypes = require('./checkPropTypes');
而且我的图书馆的使用者无法解析这些包,所以它以错误告终。
我的汇总配置如下所示:
import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import pkg from "./package.json";
export default {
input: "src/index.js",
output: [
{
file: pkg.main,
format: "cjs",
sourcemap: true
},
{
file: pkg.module,
format: "es",
sourcemap: true
}
],
external: Object.keys(pkg.peerDependencies || {}),
plugins: [
babel(),
resolve(),
commonjs({ include: ["./index.js", "node_modules/**"] })
]
};
如何强制汇总在构建时捆绑和扩展 require('./lib/ReactPropTypesSecret')
调用?
事实证明这是由于两个问题:
汇总插件的排序。 Resolve应该在第一位,其次是commonjs,然后是babel。
Babel 应该排除 node_modules。让 Babel 解析它们可能会使 commonjs 无法解析它们以捆绑依赖项。
最终配置应该是:
import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import pkg from "./package.json";
export default {
input: "src/index.js",
output: [
{
file: pkg.main,
format: "cjs",
sourcemap: true
},
{
file: pkg.module,
format: "es",
sourcemap: true
}
],
external: Object.keys(pkg.peerDependencies || {}),
plugins: [
resolve(),
babel({
exclude: "**/node_modules/**"
}),
commonjs({ include: ["./index.js", "node_modules/**"] })
]
};
- 在您的 package.json 中,将 'prop-types' 包含在 'peerDependencies'
中
- npm 安装
这解决了我的问题:
[!] 错误:'default' 未由 node_modules\prop-types\index.js 导出,由 Component
导入
我正在尝试构建一个 React 组件库。我想将我的道具类型作为文档保存在库中,而不是在构建时删除它们。问题是 rollup 没有捆绑所有的 prop-types 函数。
我最终在我的包中得到了这些行:
var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
var checkPropTypes = require('./checkPropTypes');
而且我的图书馆的使用者无法解析这些包,所以它以错误告终。
我的汇总配置如下所示:
import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import pkg from "./package.json";
export default {
input: "src/index.js",
output: [
{
file: pkg.main,
format: "cjs",
sourcemap: true
},
{
file: pkg.module,
format: "es",
sourcemap: true
}
],
external: Object.keys(pkg.peerDependencies || {}),
plugins: [
babel(),
resolve(),
commonjs({ include: ["./index.js", "node_modules/**"] })
]
};
如何强制汇总在构建时捆绑和扩展 require('./lib/ReactPropTypesSecret')
调用?
事实证明这是由于两个问题:
汇总插件的排序。 Resolve应该在第一位,其次是commonjs,然后是babel。
Babel 应该排除 node_modules。让 Babel 解析它们可能会使 commonjs 无法解析它们以捆绑依赖项。
最终配置应该是:
import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import pkg from "./package.json";
export default {
input: "src/index.js",
output: [
{
file: pkg.main,
format: "cjs",
sourcemap: true
},
{
file: pkg.module,
format: "es",
sourcemap: true
}
],
external: Object.keys(pkg.peerDependencies || {}),
plugins: [
resolve(),
babel({
exclude: "**/node_modules/**"
}),
commonjs({ include: ["./index.js", "node_modules/**"] })
]
};
- 在您的 package.json 中,将 'prop-types' 包含在 'peerDependencies' 中
- npm 安装
这解决了我的问题: [!] 错误:'default' 未由 node_modules\prop-types\index.js 导出,由 Component
导入