javascript – 我们如何在Nuxt?Vuejs项目中仅包含lodash所需的模块?

我们已经构建了一个Nuxt / VueJS项目.

Nuxt有自己的配置文件nuxt.config.js,我们在其中配置webpack和其他构建设置.

在我们的package.json中,我们已经包含了lodash包.

在我们的代码中,我们一直小心加载只导入我们需要的东西,例如:

import orderBy from 'lodash/orderBy'

在nuxt.config.js中,lodash将添加到供应商列表中.

但是,当我们创建构建时,webpack总是包含整个lodash库,而不是仅包含我们在代码中使用的内容.

我已经阅读了很多教程,但还没有得到答案.如果它只是一个webpack项目,其中一些答案肯定会有效.但在我们的例子中,它是通过nuxt配置文件.

期待一些帮助.

下面是部分nuxt.config.js文件.仅包含相关/重要部分:

const resolve = require('resolve')
const webpack = require('webpack')

module.exports = {
  /*
  ** Headers of the page
  */
  head: {
  },
  modules: [
    ['@nuxtjs/component-cache', { maxAge: 1000 * 60 * 10 }]
  ],
  plugins: [
    { src: '~/plugins/intersection', ssr: false },
  ],
  build: {
    vendor: ['moment', 'lodash'],
    analyze: {
      analyzerMode: 'static'
    },
    postcss: {
      plugins: {
        'postcss-custom-properties': false
      }
    },
    plugins: [
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
    ],
    /*
    ** Run ESLINT on save
    */
    extend (config, ctx) {
      // config.resolve.alias['create-api'] = `./create-api-${ctx.isClient ? 'client' : 'server'}.js`

    }
  }
}

解决方法:

你可以npm只安装所需的包

Lodash可以按照custom builds拆分.您可以找到已有的here列表.您可以像这样使用它们:npm i -S lodash.orderby.我没有检查它,但你可能还需要从’lodash / orderBy’更改import orderBy以从’lodash.orderby’导入orderBy.

上一篇:javascript – 比较两个包含对象的数组,以便计算更改的内容?


下一篇:javascript – 使用下划线或lodash将一个JSON结构转换为另一个