手动加载我自定义的节点模块(Angular 4.x)

Manually load in node module that I have customised (Angular 4.x)

我在我的 Angular 4.x 应用程序中使用 primeng Calender 功能 - 但是我不得不对我需要保存在我们的 repo 中的插件进行大量自定义,但是目前这个文件生活在 node_modules 中,我们不会将其保存到我们的回购协议中(但 运行 npm install 以安装依赖项) https://www.primefaces.org/primeng/#/calendar

我试图在我的 tsconfig.app.json 中引用它,但我显然做错了什么 - 将内容从 node_modules 移动到我的 src 应用程序的最佳方法是什么?

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": "./",
    "module": "es2015",
    "types": ["underscore"]
  },
  "include": [
    "/src/assets/css/primeng/components/calendar/calendar.js"
  ],
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

我 运行 遇到了与 ckeditor 相同的问题,下面是我为在我的构建中包含自定义版本的 ckeditor 所做的修改。我相信还有其他方法,但这对我有用。

  • 这将输出到 assets 文件夹中,您需要在对模块进行补丁或更新时将 assets 文件夹部署到您的生产服务器。
  • 修改为angular-cli.json

    "assets": [
            "assets",
            { "glob": "**/*", "input": "../direcotryOutsideOfNode_Modules/ckeditor", "output": "./assets/scripts/ckeditor/" }
          ],
    

然后在您的 index.html 中将其添加为脚本标签

<script src="./assets/scripts/ckeditor/ckeditor.js"></script>