javascript - react js如何只从文件中导入所需的函数而不是所有函数

标签 javascript reactjs

这是我的 functions.js 文件

export const f1 =()=>
{
console.log('palashf1');
}
export const f2 =()=>
{
console.log('palashf2');
}

这是 react 应用程序的主要js文件

import {f1} from './functions';

//在某处使用 f1


当我转到网页上的控制台并单击 bundle 时,我可以看到 f2 也正在下载

是否有任何版本的导入方法允许我们只下载我们需要的 js 函数,而不是我们正在导入的文件的所有函数?

为函数创建一个单独的文件是唯一的解决方案??

最佳答案

请升级Webpack到版本 2 或更新版本,因为它支持 tree-shaking这消除了未使用的导出。

由于 Webpack 2 支持原生 ES6 模块,您必须通过配置 babel-loader 预设来禁止 babel 将 ES6 模块转换为 common-js 格式(设置 modules: falsees2015 预设中):

{
  test: /\.js$/,
  exclude: /node_modules/,
  loader: 'babel-loader',
  options: {
    presets: [
      [
        'es2015', {
          modules: false
        }
      ]
      ...
    ]
  }
}

Tree-shaking 应该适用于此配置,请使用控制台或 Webpack Bundle Analyzer Plugin 检查.

关于javascript - react js如何只从文件中导入所需的函数而不是所有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44324676/

相关文章:

javascript - 找到任意两个数字的所有公因数的最有效方法

javascript - 主题中的 Cypress 获取按钮

javascript - 更新knockout js中的数组项

javascript - 状态不会使用 Axios 使用 useEffect 更新

javascript - react-native:更改 <Picker.Item> 标签时 <Picker> 会丢失 selectedValue

javascript - Angularjs 无法将单选按钮与嵌套范围内的模型绑定(bind)

javascript - 隐藏 Chart.js 中的所有标签和工具提示并使其非常小

javascript - React onDragStart 在 Material UI 自动完成组件中不会触发

javascript - 如何从重组转换为 Hook ?

javascript - 一次将相同的 Prop 传递给子元素