vue-cli3 vue.config.js中配置loader

前端小白求助:想在vue项目中全局引入jquery,查到一个文档好像可行,要用到expose-loader,
https://www.cnblogs.com/qiqi1...
但配置和vue.config.js不太一样,
同时也查到了vue.config.js中配加载器是这样

             // vue.config.js
             module.exports = {
              chainWebpack: config => {
               config.module
                .rule('scss')
                .use('sass-loader')
                .tap(options =>
                 merge(options, {
                  includePaths: [path.resolve(dirname, 'node_modules')],
                 })
                )
              }
             

但是现在要配置的是expose-loader,请问怎么改,谢谢大佬了~

阅读 37.7k
5 个回答

博主,找到了一种比较好的解决办法,没使用webpack-chain,而是使用了vue-cli提供的简单配置webpack的接口:configureWebpack,也解决了,感觉比这个稍微简单好理解点:

configureWebpack: (config) => {
    config.module.rules.push({
      // 处理jquery
      test: require.resolve('jquery'),
      use: [{
        loader: 'expose-loader',
        options: 'jquery'
      }, {
        loader: 'expose-loader',
        options: '$'
      }, {
        loader: 'expose-loader',
        options: 'jQuery'
      }]
    })
  }
    问题解决了,我是这样写的,希望对后来者有帮助
 
    config.module
        .rule('expose1')
        .test(require.resolve('jquery'))
            .use()
            .loader('expose-loader')
            .options("jQuery")
            .end()
    config.module
        .rule('expose2')
        .test(require.resolve('jquery'))
            .use()
            .loader('expose-loader')
            .options("$")
            .end()
 module: {
    rules: [
      {test: require.resolve("jquery"), use: "expose-loader?$"},
      {test: require.resolve("jquery"), use: "expose-loader?jQuery"},
    ]
}
//这样应该可以的 

可以参考一下,我之前写的一篇文章:
在 vue-cli 脚手架中引用 jQuery、bootstrap 以及使用 sass、less 编写 css [vue-cli配置入门]:https://juejin.im/post/5986f5...

官网的例子不行吗?
https://cli.vuejs.org/guide/webpack.html#adding-a-new-loader

// vue.config.js
module.exports = {
  chainWebpack: config => {
    // GraphQL Loader
    config.module
      .rule('graphql')
      .test(/\.graphql$/)
      .use('graphql-tag/loader')
        .loader('graphql-tag/loader')
        .end()
      // Add another loader
      .use('other-loader')
        .loader('other-loader')
        .end()
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题