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
Javascript 定制方式“;导入&x201D;与webpack一起工作_Javascript_Webpack_Import_Es6 Module Loader - Fatal编程技术网

Javascript 定制方式“;导入&x201D;与webpack一起工作

Javascript 定制方式“;导入&x201D;与webpack一起工作,javascript,webpack,import,es6-module-loader,Javascript,Webpack,Import,Es6 Module Loader,我需要自定义webpack在我的应用程序中处理导入的方式 我的一些服务有模拟实现。 在测试模式下,如果服务旁边存在带有“.mock”后缀的文件,我希望导入mock文件而不是真正的服务,否则导入服务本身 请注意,我需要不同的输出文件('main.js'和'test.js')。因此,我需要确保test.js没有包含真正的服务实现(仅仅阻止执行是不够的,根本不应该导入源代码) “服务”文件夹包含以下文件: service-1.js service-1.mock.js service-2.js inde

我需要自定义webpack在我的应用程序中处理导入的方式

我的一些服务有模拟实现。 在测试模式下,如果服务旁边存在带有“.mock”后缀的文件,我希望导入mock文件而不是真正的服务,否则导入服务本身

请注意,我需要不同的输出文件('main.js'和'test.js')。因此,我需要确保test.js没有包含真正的服务实现(仅仅阻止执行是不够的,根本不应该导入源代码)

“服务”文件夹包含以下文件:

service-1.js
service-1.mock.js
service-2.js
index.js
服务/index.js:

import service1 from ‘./service-1’
import service2 from ‘./service-2’
export {service1, service2}

请告知我如何配置我的网页。

根据评论,我可以使用自定义加载程序建议以下解决方法:

方法#1 为主文件中的每个组件(例如:
component.js
component.mobile.js
component.mobile.js
component.desktop.js
)创建一个
.mobile
.desktop
)并使用此自定义加载程序:

const目标={
桌面:“桌面”,
手机:“手机”
};
常量源=`
从“./components/Home”导入Home;
从“./components/About”导入关于;
从“./shared/Header”导入标头;
从“./shared/about”导入页脚;
从“./category/Categories”导入类别;
//代码的其余部分
`;
const-operated=manipleSource(source,targets.mobile,['components','shared']);
控制台日志(被操纵);
函数操纵源(src,target=targets.desktop,pathMatches=[])){
const paths=pathMatches.length?`(${pathMatches.join('|')})`:'';
const pattern=new RegExp(`(?.*.*.${paths}.\\\/)(?[\\w\\-\\]*)(?.*\\n)`g');
常量=src.replace(模式,(…参数)=>{
常数[{
左边
名称
休息
}]=参数切片(-1);
返回`${left}${name}.${target}${rest}`;
});
收益操纵;

}
您使用的是哪种测试框架?茉莉花、摩卡、玩笑等等——大多数人都有办法解决这类问题。我不认为修改网页包是正确的方法。@PatrickHund为了确保所有访问者都能理解我的情况,我用一种更简单的方式解释了我的问题,但是,我似乎没有那么成功。实际上,这与运行测试无关。我想为桌面和移动设备提供不同的输出文件,并将.desktop和.mobile作为源文件的可选后缀。