【发布时间】:2018-05-01 20:15:22
【问题描述】:
我正在尝试更好地理解 ES6 导入功能,我需要你的帮助。
情景
假设我的应用程序中有一个经常使用的代码子集,我将所有这些代码整理到一个文件夹中,这样它们就在一起了。
所以现在,在三个单独的文件中,我有如下内容(注意:我使用的是 TypeScript,因此示例中的文件名以“.ts”结尾):
file0.ts:
import {AbstractCoreCommunicationClass} from '../../../core-packages/communication/abstract-core-communication'
file1.ts:
import {AbstractCoreCommunicationClass} from '../communication/abstract-core-communication'
file2.ts:
import {AbstractCoreCommunicationClass} from '../../../../../core-packages/communication/abstract-core-communication'
我的希望
我希望我可以清理这些对类似内容的引用:
file0.ts:
import {AbstractCoreCommunicationClass} from '@my-communication-core/abstract-core-communication'
file1.ts:
import {AbstractCoreCommunicationClass} from '@my-communication-core/abstract-core-communication'
file2.ts:
import {AbstractCoreCommunicationClass} from '@my-communication-core/abstract-core-communication'
我尝试过的事情
我知道在 Laravel(一个不同的框架)中,可以通过编辑一个核心加载器定义文件(如 composer.json 或主 config/app.php 文件)来创建和加载模块。
我已经在 package.json 文件中寻找了一种类似的协议来引用非 npm 包,但我没有找到任何此类信息。我找到的最接近的信息是一个教程,其中 NPM 解释了如何使用 NPM 私有包,只要我想在余生中每月支付 7 美元将我的包托管在他们的服务器。
一定有办法在本地处理这种包管理,但我还没有发现它是什么,这就是为什么我需要你的帮助!
感谢所有帮助。没有错误的答案。有时即使是一个糟糕的答案也能为我指明正确的方向,所以请给我你的想法,让我们一起解决这个问题,让每个人都能受益!
【问题讨论】:
-
如何解释模块说明符不是 ECMAScript 规范的一部分。这取决于您的环境使用的模块加载器。
标签: javascript typescript import ecmascript-6 ecma