Javascript 导入ES2015模块时的模块版本

Javascript 导入ES2015模块时的模块版本,javascript,ecmascript-6,Javascript,Ecmascript 6,假设我在同一文件夹中有两个ES2015模块: //moduleone-1.5.0.js export function temp() { console.log("Hi"); } //moduletwo-2.0.0.js import {temp} from './moduleone';//LINE X temp(); 我应该在第X行使用'./moduleone'还是'./moduleone-1.5.0'?我需要了解它必须如何根据规范工作。没有“模块版本”。您有两个不同的模块,一个名为

假设我在同一文件夹中有两个ES2015模块:

//moduleone-1.5.0.js
export function temp() {
   console.log("Hi");
}

//moduletwo-2.0.0.js
import {temp} from './moduleone';//LINE X
temp();
我应该在第X行使用
'./moduleone'
还是
'./moduleone-1.5.0'
?我需要了解它必须如何根据规范工作。

没有“模块版本”。您有两个不同的模块,一个名为
moduleone-1.5.0
,另一个名为
moduleWO-2.0.0
,这些是导入时必须使用的名称

正如您所说,您正在使用NodeJS(npm),您应该通过将其添加到
包中来安装这些模块。json

 { 
  "dependencies" :  {
    "moduleone" : "1.5.0"
  }
}

然后您可以从“moduleone”导入
并根据需要更改软件包规范中的版本。

两种方法都试过了吗?@jonaswillms仅在node.js中使用。/moduleone-1.5.0“worksnpm与ES6模块无关。规范没有对模块标识符及其解析方式施加任何规则。其工作方式取决于不属于规范的模块加载器。取决于您正在使用的模块加载器。它可能确实会将模块One解析为该模块的当前版本。@bergi我知道的所有模块都不能解析that@pavel_k浏览器支持仍然不好,在大多数情况下,我建议将所有模块捆绑到一个js文件中,以提供给客户端。@Pavel_K:浏览器可能将模块标识符视为文件路径。