Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将Webpack HMR与提升的Lerna React项目一起使用_Reactjs_Webpack_Webpack Dev Server_Lerna_Webpack Hmr - Fatal编程技术网

Reactjs 将Webpack HMR与提升的Lerna React项目一起使用

Reactjs 将Webpack HMR与提升的Lerna React项目一起使用,reactjs,webpack,webpack-dev-server,lerna,webpack-hmr,Reactjs,Webpack,Webpack Dev Server,Lerna,Webpack Hmr,是否可以将网页包热模块更换(HMR)与吊装的Lerna React项目一起使用 这是因为每个Lerna React包(参见下面的示例)都是独立构建的,当在主项目(例如p3)上启动webpack开发服务器时,它只能看到自己的更改(我的意思是仅p3更改),而不能看到monorepo的其他包中的依赖项(p1或p2)更改 some_lerna_project /node_modules /packages /p1 /src

是否可以将网页包热模块更换(HMR)与吊装的Lerna React项目一起使用

这是因为每个Lerna React包(参见下面的示例)都是独立构建的,当在主项目(例如p3)上启动webpack开发服务器时,它只能看到自己的更改(我的意思是仅p3更改),而不能看到monorepo的其他包中的依赖项(p1或p2)更改

some_lerna_project
       /node_modules
       /packages
            /p1
              /src
              package.json
            /p2
              /src
              package.json
            /p3
              /src
              package.json
              webpack.confing.js
       lenra.json

如果是,请提供一个配置示例?

您需要这些包成为传输文件的一部分

//webpack.config.js
const path=require('path');
常量路径分隔符=“[\\/]”;//匹配2个反斜杠或一个斜杠
const safePath=(module)=>module.split(/[\\\/]/g).join(路径分隔符);
const generateIncludes=(模块)=>{
返回[
新的RegExp(`(${modules.map(safePath.join(“|”)})$`),
新正则表达式(
`(${modules.map(safePath.join(“|”)${PATH\u DELIMITER}(?。*node\u模块)`
),
];
};
const transpileModules=[“@my scope/p1”,“@my scope/p2”];//使用作用域包
module.exports={
模式:“发展”,
条目:{
应用程序:“./src/index.js”,
打印:“./src/print.js”,
},
模块:{
规则:[
{
测试:/\.m?js$/,,
排除:/(节点\模块)/,
使用:{
加载器:“巴别塔加载器”,
选项:{
预设:[“@babel/preset env”],
},
},
},
{
测试:/\.m?js$/,,
包括:生成包括(传输模块),
使用:{
加载器:“巴别塔加载器”,
选项:{
//使用您喜欢的babel配置
预设:[“@babel/preset env”],
},
},
},
],
},
决心:{
symlinks:false,//避免使用Webpack将传输模块路径解析为其实际路径
},
输出:{
文件名:“[name].bundle.js”,
path:path.resolve(_dirname,“dist”),
},
};

此代码基于此,使Next.js项目能够传输mono repo包。

您需要这些包成为传输文件的一部分

//webpack.config.js
const path=require('path');
常量路径分隔符=“[\\/]”;//匹配2个反斜杠或一个斜杠
const safePath=(module)=>module.split(/[\\\/]/g).join(路径分隔符);
const generateIncludes=(模块)=>{
返回[
新的RegExp(`(${modules.map(safePath.join(“|”)})$`),
新正则表达式(
`(${modules.map(safePath.join(“|”)${PATH\u DELIMITER}(?。*node\u模块)`
),
];
};
const transpileModules=[“@my scope/p1”,“@my scope/p2”];//使用作用域包
module.exports={
模式:“发展”,
条目:{
应用程序:“./src/index.js”,
打印:“./src/print.js”,
},
模块:{
规则:[
{
测试:/\.m?js$/,,
排除:/(节点\模块)/,
使用:{
加载器:“巴别塔加载器”,
选项:{
预设:[“@babel/preset env”],
},
},
},
{
测试:/\.m?js$/,,
包括:生成包括(传输模块),
使用:{
加载器:“巴别塔加载器”,
选项:{
//使用您喜欢的babel配置
预设:[“@babel/preset env”],
},
},
},
],
},
决心:{
symlinks:false,//避免使用Webpack将传输模块路径解析为其实际路径
},
输出:{
文件名:“[name].bundle.js”,
path:path.resolve(_dirname,“dist”),
},
};
这段代码基于它,它使Next.js项目能够传输mono repo包