从ESModules中的复杂路径导入模块的最佳方法是什么

pp

在CommonJS中,我使用这种方式。

require(constant.APPROOT + "/lib/utils.js")

代替

require("../../../../../../lib/utils.js")

但是,它不能在ESModules中工作。

import util from constant.APPROOT + "/lib/util.js"
// Uncaught SyntaxError: Unexpected identifier

我知道原因,因为它不是静态的。

我尝试两种方式。

[第一](接受复杂路径)

import path from "path"
import fs from "fs"
import foo from "./foo.js"
import bar from "../../../../../lib/bar.js"
import util from "../../../../../lib/util.js"

// application code

[第二项](使用动态导入)

import path from "path"
import fs from "fs"
import foo from "./foo.js"

!async function main(){
   const [bar, util] = await Promise.all([
       import(constant.APPROOT + "/lib/bar.js"),
       import(constant.APPROOT + "/lib/util.js"),
   ])

   // application code

}()

我认为两者都不好。什么是最好的方法?

Deowk

1. Webpack

您可以webpack用来设置别名(如果您要构建节点应用程序,然后target: node在配置中进行设置,则有很多关于如何完成此操作的良好指南):

  resolve: {
    ...,
    alias: {
      '$lib': constant.APPROOT + "/lib"
    }
  }

然后像->导入 import util from "$lib/util.js"

2. Npm套餐

您可以使用此包在package.json中设置别名-> https://github.com/ilearnio/module-alias

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

导入es6模块的最佳方法是什么?

在Restkit中纠缠路径模式的最佳方法是什么

在nodejs中定义模块变量的最佳方法是什么?

在功能模块中声明服务的最佳方法是什么?

如果始终不需要导入模块的最佳方法是什么?

机架中的模块路径索引是什么

在Java中解析许多复杂的命令行参数的最佳方法是什么?

使用ReactiveUI侦听复杂对象更改的最佳方法是什么?

在Azure IoTEdge中的模块中启动长期运行的方法的最佳方法是什么?

在Google路径中的坐标之间插入点的最佳方法是什么?这种方法正确吗?

给定相对路径,从集群中获取ActorRef的最佳方法是什么?

从EF迁移脚本中查找目录路径的最佳方法是什么?

使用线程和tkinter模块在python中停止线程并避免“ RuntimeError”的最佳方法是什么?

导入元素依赖项的最佳方法是什么?

使用CodeIgniter导入js和CSS的最佳方法是什么?

要求节点模块var或const的最佳方法是什么?

部署npmjs私有模块的最佳方法是什么?

带ES6模块的TypeScript的最佳方法是什么?

在日志中搜索的最佳方法是什么?

在Java中IPC的最佳方法是什么?

在Typescript中导入模块的正确方法是什么?

如何知道Python中模块的导入器是什么?

导入、读取和添加到保存在文本文件中的列表的最佳方法是什么?

在(Vue,React)中使用子模块导出模块的最佳方法是什么

在ES6中导入和使用d3及其子模块的正确方法是什么?

为什么要从删除的路径导入模块?

可靠存储复杂Java对象层次结构的最佳方法是什么?

用api数据创建填充复杂对象的最佳方法是什么?

编写灵活的导入器模块的最佳方法

TOP 榜单

热门标签

归档