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.ProvidePlugin与zepto_Webpack - Fatal编程技术网

webpack.ProvidePlugin与zepto

webpack.ProvidePlugin与zepto,webpack,Webpack,我有一个在很多模块中使用ZepO的项目。 正如您所知,webpack.ProvidePlugin是处理此场景的最佳方法,使用它,我不需要在每个模块中手动导入zepto zepto本身不导出,因此我无法使用ProvidePlugin导入它 plugins: [ new webpack.ProvidePlugin({ $: 'zepto' }) ] 我知道有一种叫做zepto的包装 但是如果我采用这个解决方案,每次zepto更新时,我都需要自己更新代码 有什么方法

我有一个在很多模块中使用ZepO的项目。 正如您所知,webpack.ProvidePlugin是处理此场景的最佳方法,使用它,我不需要在每个模块中手动导入zepto

zepto本身不导出,因此我无法使用ProvidePlugin导入它

 plugins: [
    new webpack.ProvidePlugin({
      $: 'zepto'
    })
  ]
我知道有一种叫做zepto的包装

但是如果我采用这个解决方案,每次zepto更新时,我都需要自己更新代码


有什么方法可以解决我的问题吗?

您可以尝试
脚本加载程序

webpack.config.js

loaders: [
    {
        test: require.resolve('zepto/zepto.min.js'),
        loader: 'script'
    }
]
plugins: [
    new webpack.ProvidePlugin({
        $: 'zepto/zepto.min.js'
    })
]
webpack.config.js

loaders: [
    {
        test: require.resolve('zepto/zepto.min.js'),
        loader: 'exports?window.$!script'
    }
]
plugins: [
    new webpack.ProvidePlugin({
        $: 'zepto/zepto.min.js'
    })
]
它将读取并执行
zepto.min.js
文件,就像您将其放入脚本标记中一样,然后在模块中,您可以通过
窗口访问zepto。$

更新:

如果您只是想使用
$
而不是
窗口。$
,您可以通过
导出加载程序和
脚本加载程序
要求zepto.min.js文件:

webpack.config.js

loaders: [
    {
        test: require.resolve('zepto/zepto.min.js'),
        loader: 'script'
    }
]
plugins: [
    new webpack.ProvidePlugin({
        $: 'zepto/zepto.min.js'
    })
]
webpack.config.js

loaders: [
    {
        test: require.resolve('zepto/zepto.min.js'),
        loader: 'exports?window.$!script'
    }
]
plugins: [
    new webpack.ProvidePlugin({
        $: 'zepto/zepto.min.js'
    })
]