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
Webpack 为不同的js条目打包不同的加载程序_Webpack - Fatal编程技术网

Webpack 为不同的js条目打包不同的加载程序

Webpack 为不同的js条目打包不同的加载程序,webpack,Webpack,您可以使用不同的加载程序集加载辅助条目吗 例如,我正在尝试为脱机缓存创建一个服务工作者。我已排除包含服务人员的文件夹,并将其包含在另一个文件夹中。没有对service-worker.js的调用(它只是手动加载到static index.html中)。服务人员的入口点是选择React和hot loader,而不是仅仅通过Babel。以下是我的配置的主要部分 entry: { app: "app.js", 'service-worker': 'persistence/servic

您可以使用不同的加载程序集加载辅助条目吗

例如,我正在尝试为脱机缓存创建一个服务工作者。我已排除包含服务人员的文件夹,并将其包含在另一个文件夹中。没有对service-worker.js的调用(它只是手动加载到static index.html中)。服务人员的入口点是选择React和hot loader,而不是仅仅通过Babel。以下是我的配置的主要部分

entry: {
     app: "app.js",
     'service-worker': 'persistence/service-worker.js'
},
module: {
    loaders:[{
        test: /\.js|\.jsx/,
        loaders: ["react-hot", "jsx?harmony", "babel"],
        exclude: /persistence/
    }, {
        test: /service\-worker\.js/,
        loaders: ["babel"],
        include: /persistence/
  }]

我决定使用文件加载器(使用babel加载器预处理js文件)。它在热加载程序和我的生产Docker/Node环境中工作

loaders: {
  {
    test: /\.(js|jsx)$/,
    include: [/src/,/bower_components/],
    exclude: [/persistence/],
    loader: 'jsx?harmony!babel'
  }, {
    test: /\.js$/,
    include: [/persistence/],
    loader: 'file?name=[name].[ext]!babel'
  }, 
  ...
},

此配置将文件夹从普通JS文件中排除,并将服务人员文件单独复制到站点的根目录中。

看起来您可以在入口点中使用内联加载程序语法来实现此功能(在Webpack 4.42.1中测试)

以下
webpack.config.js
raw loader
应用于
script.js
script\u raw
入口点,但不适用于
script\u plain
入口点

var path=require('path');
module.exports={
模式:"发展",,
条目:{
'script_raw':'raw loader!。/script.js',
“script_plain”:“./script.js”,
},
输出:{
路径:'/app/out',
文件名:'[name].js'
}
};

对于您的情况,这将很快变得非常笨拙,但也可能成为做其他有趣事情的基础。

我不明白为什么这样的事情不起作用。您在安装过程中是否遇到了一些特殊问题?service worker条目包含所有javsscript软件包,并且不包括persistence文件夹中的1文件。最安全的方法可能是为您的service worker定义一个单独的配置。这对我来说似乎是最干净的解决方案。我遇到同样的情况,你的解决方案有效!只需检查入口和加载器是否完全匹配