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