如何使用ES6模块导入导入路径

Foy*_*any 6 javascript node.js ecmascript-6 strongloop

有没有什么好方法可以优雅地加载模块(IDE可以建议或进入文件)使用动态路径或从根目录开始导入模块?

import * as Q from 'q';
import * as loopback from 'loopback';
import datasources from '../../../datasources.json';
import app from '../../../server';
import {ApiError, ValidationError, DatabaseError} from'../../../utils/error-handlers';
Run Code Online (Sandbox Code Playgroud)

App*_*l W 0

模块标识符甚至不一定是路径。例如,它经常搜索node_modules文件夹。快速回答是语法取决于模块加载器。

但务实的答案是,如果您使用 Babel(因为您指定这是 ES6 导入,您可能会这样做),您可以在开头使用“@”指定相对于项目根目录的位置。例如,在我的 Vue.js 项目中,我有:

import PageFooter from '@/components/PageFooter'
Run Code Online (Sandbox Code Playgroud)

就我而言,这可以避免在不同深度拥有复杂的嵌套组件树的问题。

就您而言,您可以:

import app from '@/server'
Run Code Online (Sandbox Code Playgroud)

假设服务器位于项目根目录中(例如作为 server.js 而不是文件夹本身)。