从同一Yarn工作区上的另一个包导入React Native组件

时间:2019-06-28 11:58:38

标签: react-native webpack yarnpkg lerna monorepo

我试图使用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组件吗?

任何可行的替代方法都将受到赞赏。

0 个答案:

没有答案