在带有Lerna和Yarn工作区的Typescript monorepo中启用热重新加载,可以按照以下步骤进行操作:
.env
的文件,并在其中添加以下内容:FAST_REFRESH=true
这将启用热重新加载。
package.json
文件中,添加以下配置:"scripts": {
"start": "lerna run start --stream",
"dev": "lerna run dev --stream"
},
"devDependencies": {
"concurrently": "^6.0.0"
}
这将配置启动和开发脚本,并安装concurrently
依赖。
tsconfig.json
的文件,并添加以下内容:{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@your-package-name/*": ["packages/*/src"]
}
},
"include": ["packages/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
将@your-package-name
替换为你的包名。
webpack.config.js
的文件,并添加以下内容:const path = require('path');
module.exports = {
mode: 'development',
entry: './packages/your-package-name/src/index.ts',
output: {
path: path.resolve(__dirname, 'packages/your-package-name/dist'),
filename: 'bundle.js',
},
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
};
将your-package-name
替换为你的包名。
webpack.config.js
的文件,并添加以下内容:const path = require('path');
module.exports = {
mode: 'development',
entry: './src/index.ts',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
};
package.json
文件中,添加以下配置:"scripts": {
"start": "webpack serve --config webpack.config.js --hot",
"dev": "webpack --config webpack.config.js --watch"
},
"devDependencies": {
"webpack": "^5.50.0",
"webpack-cli": "^4.8.0",
"webpack-dev-server": "^4.0.0",
"ts-loader": "^9.2.6",
"typescript": "^4.4.2"
}
yarn dev
这将同时启动所有包的开发服务器,并启用热重新加载。
现在,你的带有Lerna和Yarn工作区的Typescript monorepo中已经启用了热重新加载。你可以在开发过程中进行修改和保存,代码将自动重新加载并应用到运行中的应用程序中。
领取专属 10元无门槛券
手把手带您无忧上云