我正在尝试创建两个React项目:
反应组件库(仅适用于未运行应用程序的组件)
使用已创建组件的SPA应用程序(示例应用程序)
我想实现以下文件夹结构:
./src
-具有React组件的目录./example
-包含使用./src组件的SPA应用程序示例目录中有配置文件(最简单的React + webpack config,没有HMR和其他内容):
webpack.config.js
const HtmlWebPackPlugin = require("html-webpack-plugin");
const aliases = require('./aliases.js');
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.html$/,
use: [
{
loader: "html-loader"
}
]
}
]
},
resolve: {
alias: aliases
},
plugins: [
new HtmlWebPackPlugin({
template: "./src/index.html",
filename: "./index.html"
})
]
};
aliases.js
var path = require('path');
module.exports = {
'webpack-alias-react': path.resolve(__dirname, '../src')
};
babel.rc
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
VSCode别名配置位于jsconfig.json
文件中。
这是我的问题。
当./src/SimpleComponent
包含这样的代码时:
const SimpleComponent = () => {
return 'string';
};
运行npm run build
命令将构建可运行的应用程序。
但是当./src/SimpleComponent
返回时:
const SimpleComponent = () => {
return <div>abc</div>;
};
npm run buid
命令引发异常:
../src/SimpleComponent.js中的ERROR模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):SyntaxError: D:\ Tranzystor \ webpack-alias-react \ src \ SimpleComponent.js:意外 令牌(4:9)
如何解决此webpack / Babel配置问题?
为什么可以在<div>
中写入App.js
?
那是正确的方法吗?
可以使用here的整个代码。
答案 0 :(得分:1)
我已经解决了TransactionType TransactionID
--------------------------------
Deposit 1256
Deposit 777
的问题,并提供了针对此类问题的扩展解决方案:
github
准备使用Babel 7
配置。
它对monorepo解决方案很有帮助。
将自己的组件库发布到npm可以是另一个应用程序。正如我上面提到的,webpack 4 + React + Babel 7 + eslint
目录包含较小的react组件(您要在npm上发布的内容)。 ./src
目录中有一个spa应用程序,其中显示了如何使用提供的组件(例如,可以是故事书)。