Angular 启动:如何';包装';或';构建';变更后的项目?

Angular 启动:如何';包装';或';构建';变更后的项目?,angular,primeng,ng2-bootstrap,Angular,Primeng,Ng2 Bootstrap,我在角度应用程序中使用素数。我想向其中一个组件添加一些功能,所以我按照说明()进行了操作,并使所有更改都能正常工作。现在我想把它打包,以便在我的应用程序中安装这个修改过的分支。我该怎么做呢 我以前使用ng2引导程序做过这件事,运行“npm包”,然后在我的应用程序中安装生成的tar包。我试着用priming做同样的事情,但是我的项目出错了,因为priming.js文件不在那里。我假设我需要用不同的方式来做,但我不知道如何做,也没有太多的网页/吞咽经验 转到您的GitHub帐户 克隆包 开设一个新分

我在角度应用程序中使用素数。我想向其中一个组件添加一些功能,所以我按照说明()进行了操作,并使所有更改都能正常工作。现在我想把它打包,以便在我的应用程序中安装这个修改过的分支。我该怎么做呢

我以前使用ng2引导程序做过这件事,运行“npm包”,然后在我的应用程序中安装生成的tar包。我试着用priming做同样的事情,但是我的项目出错了,因为priming.js文件不在那里。我假设我需要用不同的方式来做,但我不知道如何做,也没有太多的网页/吞咽经验

  • 转到您的GitHub帐户
  • 克隆包
  • 开设一个新分支
  • 对新分支进行更改
  • 然后按顺序运行以下命令

    npm安装
    -下载依赖项

    gulpbuild
    -为css创建资源包

    npm运行构建prod
    ——它运行构建脚本

    然后,您可以将此包推送到自己的GitHub帐户,使用不同的分支名称,并在您需要自定义生成的项目中运行以下操作:

    npm install git://github.com/<user>/<project>.git#<branch>
    
    npm安装git://github.com//.git#
    

    然后,每当启动在主服务器上进行更改时,您都可以将它们与自定义分支合并。

    在forked priming v5中,需要使用以下行更新package.json以构建和重新发布

    对package.json的添加

      "scripts": {
        "build-components": "ngc -p tsconfig-release.json",
        "build-assets": "gulp build-assets",
        "build-styles": "node-sass src/assets/components -o src/assets/components",
        "build-redistribute": "npm run build-components && npm run build-assets && npm run build-styles"
      }
      "devDependencies": {
        "node-sass": "^4.5.3",
      }
    
    安装节点sass并运行以下命令以生成

    npm run build-redistribute
    
    参考:

    Priming>7 可选地在package.json中添加
    dist
    脚本以构建分发文件

    {
      "name": "primeng",
      "version": "7.0.0",
      "license": "MIT",
      "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e",
        "dist": "ngc -p tsconfig-release.json && gulp build-assets && gulp build-exports"
      },
    
    然后做一个

    npm run dist
    
    请注意,在7.0.0版中,运行此命令时会随机抛出错误

    [08:38:19]开始“主题”。。。 events.js:174 投掷者;//未处理的“错误”事件 ^ 错误:enoint:没有这样的文件或目录,stat'priming/resources/components/accordion/accordion.css'

    另一个

    [08:35:44]“图像”在134毫秒后出错 [08:35:44]错误:EEXIST:文件已存在,mkdir'priming/resources/images'

    我想这是因为比赛情况或其他原因。如果发生这种情况,请再次尝试该命令,直到它正确生成。

    您也可以在不添加脚本的情况下运行这些命令

    npm install
    ./node_modules/.bin/ngc -p tsconfig-release.json
    ./node_modules/.bin/gulp build-assets
    ./node_modules/.bin/gulp build-exports
    
    然后您可以生成一个tar.gz文件,您可以在项目中使用它

    npm pack
    
    并在您的项目中安装

    npm install ~/primeng/primeng-7.0.0.tar.gz
    
    npm安装状态,您也可以使用文件夹,因此,您也可以安装为

    npm install ~/primeng/
    
    我试过了,但它在我的项目中抛出了以下异常,所以我不得不使用tar.gz

    StaticInjectorError(平台:核心)[RouterOutlet->ChildrenOutletContexts]: NullInjectorError:没有ChildrenOutletContext的提供程序

    您也可以在npm上发布自己的版本

    npm login
    npm publish
    
    并使用它来代替Priming官方发行版

    npm install @youruser/primeng
    

    感谢@Anulal为我们指明了正确的方向 生成过程已更改为在Priming 9中使用
    ng Packager
    。该方法在Priming 10中得到确认

    要构建运行一次以安装ng packager,请执行以下操作:

    npm install ng-packager --save-dev
    
    每次运行以生成

    npm run build-lib
    

    我没有使用
    ngpackagr
    构建版本9。根据这一点,应该是相同的。

    我成功地完成了所有这些步骤,但仍然得到相同的错误:“加载资源失败:服务器响应状态为404(未找到)”。我唯一没有做的一步就是转给我的github帐户,但是这些步骤应该在本地也能工作是吗?那么你是如何安装npm的呢?您的项目用于构建系统的是什么?您是否使用以下angular cli、WebPack、SystemJS?Im使用SystemJS,类似于angular quickstart加载您的SystemJS配置,它具有正确的导入路径?您只是简单地将Priming文件夹复制到您的项目节点_模块,还是正在进行npm安装?我尝试将npm安装作为一个整体安装在修改过的Priming分支文件夹上。所以在我的项目中,我尝试了“npm安装primeng分支”,然后将primeng分支安装到我的node_modules目录中。我还尝试在primeng分支内部执行npmpack,然后在我的项目中安装生成的tarball,但这也导致了相同的错误。我没有将Priming分支目录复制到我的node_modules目录不再适用于Priming 7,至少对我不适用。运行所有链接命令可以解决竞争条件
    /node_modules/.bin/ngc-p tsconfig-release.json&./node_modules/.bin/gulp构建资产&&./node_modules/.bin/gulp构建导出和npm包&/code>