我试图使用Yarn Workspaces创建一个monorepo,我做了一些必要的工作,将导出的“ package.json” 设置为"name": "@es6-apps/react-native", "main": "src/App.js"
,将"dependencies": { "@es6-apps/react-native": "1.0.0", ... }
放在另一个“ package.json” 我将在其中导入等,
但是从类似'@es6-apps/react-native'
的另一个包中导入带有React Native的源会引发错误:
import App from '@es6-apps/react-native';
export default App;
----------
[ error ] ../react-native/src/App.js 24:6
Module parse failed: Unexpected token (24:6)
You may need an appropriate loader to handle this file type.
| render() {
| return (
> <View style={styles.container}>
我什至尝试了这个“。babelrc” 和“ webpack.config.js” 东西来导入转译的文件而不是原始文件,但是构建了一个React Native组件只会引发一个错误。我还尝试使用另一个在Web上可用的webpack配置,结果相同。
package.json
"scripts": { "build": "webpack" }
----------
.babelrc
{ "presets": ["@babel/preset-react"]
OR "presets": ["module:metro-react-native-babel-preset"] }
----------
webpack.config.js
var path = require('path');
module.exports = {
mode: 'development',
entry: './src/App.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
}
]
}
};
有人知道如何使用Yarn Workspaces从同一monorepo上的另一个包中导入React Native组件吗?
任何可行的替代方法都将受到赞赏。