Styled-componentsを使用して、rollUpでバンドルを構築しています。
私のrollup.config.jsは次のようになります:
import resolve from 'rollup-plugin-node-resolve'
import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
export default {
input: 'src/index.js',
output: {
file: 'dist/bundle.js',
format: 'cjs'
},
external: [
'react',
'react-proptypes'
],
plugins: [
resolve({
extensions: [ '.js', '.json', '.jsx' ]
}),
commonjs({
include: 'node_modules/**'
}),
babel({
exclude: 'node_modules/**'
})
]
}
そして、私は受け取っています
[!] Error: 'isValidElementType' is not exported by node_modules/react-is/index.js
https://github.com/rollup/rollup/wiki/Troubleshooting#name-is-not-exported-by-module
node_modules/styled-components/dist/styled-components.es.js (7:9)
5: import stream from 'stream';
6: import PropTypes from 'prop-types';
7: import { isValidElementType } from 'react-is';
^
8: import hoistStatics from 'hoist-non-react-statics';
Node_modules自体の反応を確認するのは、チェックアウトできる here であるため、commonjsモジュールです。
Commonjsプラグインはnode_modules/**内にあるので、これを処理すべきではありませんか?
ありがとう。
rollup-plugin-commonjs
を使用してこれを解決しました
以下のように、ロールアップ設定でエクスポートを手動で定義します
export default {
input: 'src/index.js',
output: [
{
file: pkg.main,
format: 'cjs',
sourcemap: true
},
{
file: pkg.module,
format: 'es',
sourcemap: true
}
],
plugins: [
external(),
postcss({
modules: true
}),
url(),
babel({
exclude: 'node_modules/**'
}),
resolve(),
commonjs({
include: 'node_modules/**',
namedExports: {
'node_modules/react-is/index.js': ['isValidElementType']
}
})
]
}
この後、すべてがうまくいきました。
そして情報については、私の初期セットアップは https://github.com/transitive-bullshit/react-modern-library-boilerplate を介して行われました
それがあなたのために働くことを願っています
上記の修正はうまくいきませんでした。ただし、styled-components
からrollup.config.js
私のために働いた外部とグローバルのリスト。
export default {
...
external: ['styled-components'],
...
globals: { 'styled-components': 'styled' },
};
TypeScript create-react-library cliを使用していますが、これはロールアップにバンドルされています。
https://github.com/styled-components/styled-components/issues/9