Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-包含来自本地自定义npm模块的.ts文件(已安装)_Angular_Typescript - Fatal编程技术网

Angular 角度-包含来自本地自定义npm模块的.ts文件(已安装)

Angular 角度-包含来自本地自定义npm模块的.ts文件(已安装),angular,typescript,Angular,Typescript,问题:当包含来自自定义npm模块的文件时,如何让Angular查看节点\u模块文件夹,而不是“package.json中定义的自定义目录”。(见下面的package.json) 在我的项目中,我有两个文件夹 根 棱角的 src package.json 共享(npm模块) src package.json 在angular目录中,我通过正常的npm安装安装我的定制npm模块。这是package.json文件 { "name": "angular", "dependen

问题:当包含来自自定义npm模块的文件时,如何让Angular查看
节点\u模块
文件夹,而不是“package.json中定义的自定义目录”。(见下面的package.json)


在我的项目中,我有两个文件夹

    • 棱角的
      • src
      • package.json
    • 共享(npm模块)
      • src
      • package.json
angular目录中,我通过正常的
npm安装
安装我的定制npm模块。这是package.json文件

 {
  "name": "angular",
  "dependencies": {
    "shared-module": "file:../shared-module"
  }
通过检查angular目录的node_modules文件夹,我可以看到它已正确安装

    • 棱角的
      • 节点单元
        • 共享模块
          • src
然后,当我在角度项目中包含共享模块中的文件时

import 'shared-module/src/util/countries';
它似乎没有查看angular->node_modules文件夹,而是一直转到自定义npm模块的“原始”目录

../shared module/src/util/countries.ts中出错 类型脚本编译中缺少。请通过'files'或'include'属性确保它位于您的tsconfig中

如果我更新tsconfig.json以包含“original”目录,它会工作

"include": [
  "./src/**/*.ts",
  "../shared-modules//src/**/*.ts"
]
但是,将其添加到package.json中没有实际意义(除非发布模块)

所以我觉得我错过了一些设置,也许吧?提前谢谢


编辑:像这样使用NPM 5时,它似乎创建了一个符号链接

"shared-modules": "file:../shared-module"

edit2:保留符号链接似乎什么都不做()


不管怎样,只要真的安装软件包?

当我使用未编译的库时,我可能想立即编辑并获取更改,我会将它们添加到tsconfig的“路径”中或使用“npm link”

当我使用未编译的库时,我可能希望立即编辑并获取更改,我会将它们添加到tsconfig的“路径”中或使用“npm链接”

您使用了什么来构建自定义模块?不知道我是否理解这个问题,但我没有使用任何东西来构建。。用例:angular项目包括来自自定义模块的一些.ts文件,并使用这些文件编译/构建angular输出。。共享文件夹不需要是“预构建”的好吧,我误解了。我以为你在应用程序中安装了一个定制的npm模块。啊,是的,这是正确的:)我必须提高我的SO技能,对不起(第二篇帖子左右)。。模块已正确安装,但当我从模块导入文件时,它不会进入node_modules文件夹,而是进入自定义_模块的“原始”路径,从而停止文件夹的作用域。。问题是:如何让typescript不跟随符号链接,而是处理angular own node_module文件夹中的“local”模块?谢谢;)你用什么来构建自定义模块?不知道我是否理解这个问题,但我没有用什么来构建。。用例:angular项目包括来自自定义模块的一些.ts文件,并使用这些文件编译/构建angular输出。。共享文件夹不需要是“预构建”的好吧,我误解了。我以为你在应用程序中安装了一个定制的npm模块。啊,是的,这是正确的:)我必须提高我的SO技能,对不起(第二篇帖子左右)。。模块已正确安装,但当我从模块导入文件时,它不会进入node_modules文件夹,而是进入自定义_模块的“原始”路径,从而停止文件夹的作用域。。问题是:如何让typescript不跟随符号链接,而是处理angular own node_module文件夹中的“local”模块?谢谢;)谢谢,但我想避免使用npm链接(npm 5在使用安装文件../my module时默认不使用npm链接)。如果软件包真的安装在本地,那就太好了,所以我把所有文件都保存在“angular”目录范围内。。。(也使用docker)谢谢,但我想避免使用npm链接(npm 5在使用安装文件../my module时默认不使用npm链接)。如果软件包真的安装在本地,那就太好了,所以我把所有文件都保存在“angular”目录范围内。。。(也使用docker)
"shared-modules": "file:../shared-module"