【问题标题】:How to import forked library to Angular2如何将分叉库导入Angular2
【发布时间】:2018-05-07 20:17:51
【问题描述】:

到目前为止,我一直在寻找答案,但一无所获,请原谅我的问题,如果我的问题经常被问到,但我太笨了,无法正确搜索。

我尝试使用JS拖放库Draggable,但我需要更改一些东西才能正确使用它。

所以我已经分叉并下载了它,但现在我无法导入它。

  • 我尝试像模块一样导入它,但它是文件的 .js 扩展名 包含所有导入和导出(我尝试将其更改为 .ts,但是 它没有帮助);
  • 我尝试在 index.html 中导入它,但它会提醒该文件是 text/html 类型,因此无法导入;
  • 我尝试与 npm 交互以从分叉库或类似的东西创建我自己的包,但我在 npm 中很蹩脚,所以没有机会。

所以我想办法导入这个本地库,这样它就可以像通过 npm 导入一样工作,但可以在其中做一些更改。

我使用的是 Ubuntu Mate 16.04,我的 Angular2 项目应用文件夹如下所示: 应用程序 | --draggable(我想使用的包含库的文件夹) | 其他组件和标准文件

编辑:我已经通过 npm 安装了库,使用 path/to/folder(我的 Angular2 应用程序中的npm install ./src/app/draggable --save),所以在 package.json 中它是带有包名称的行和: "file:src/app/draggable" 之后。

但是当我尝试像import { Droppable } from '{myName}' 一样使用它时,编译错误:Module not found: Error: Can't resolve '{myName}' in '/{pathToProject}/src/app'

如何解决这个问题并使用本地库?

【问题讨论】:

    标签: angular


    【解决方案1】:

    您可以npm publish 以另一个名称(package.json 中的名称)更改您的包到npmjs.org。要做到这一点,你可以在你的包的packagage.json 所在的包根目录的命令行中输入npm publish。然后你导入就像你对原始包所做的一样(并且可能会调整包的名称)。

    或者您可以在node_modules 文件夹中进行更改(但这是临时的,可以在您致电npm install 时撤消)。所以如果你选择第二种方法,你应该将洞包复制到另一个地方。这样导入是一样的。

    【讨论】:

    • 我需要从我的 github 帐户发布这个还是什么?此外,当我尝试发布并出现错误时,我看到了“您也可以从文件夹安装”之类的内容。是真的吗?
    • 不,你从硬盘上发布它。从项目根文件夹(package.json 所在的位置)中的命令行cd 输入npm publish。是的,你可以将包直接放在你的 npm-cache 中,但我不知道这是如何工作的。
    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2017-07-17
    • 2016-11-16
    • 1970-01-01
    • 2017-02-13
    • 2017-01-23
    相关资源
    最近更新 更多