簡體   English   中英

在 NPM package 安裝之后運行 gulp 任務,無需任何命令

[英]Run gulp task after NPM package install without any command

我開發了一個托管在 npmjs 上的小型 angular package。 當我嘗試安裝 package 時,我想更改我的“選擇器”名稱,以便編寫一個 gulp 任務,如下所示:

 gulp.task('tag-change', function () { // var files = fs.readFileSync('./node_modules/@syncfusion/ej2-angular-buttons/@syncfusion/ej2-angular-buttons.es5.js', 'utf8'); var files = glob.sync('./dist/@syncfusion/*'); for (var i = 0; i < files.length; i++) { var sourceFile = fs.readFileSync(files[i],'utf8'); sourceFile = sourceFile.replace(`selector: '[ejs-button]'`,`selector: '[KD-button]'`); fs.writeFileSync(files[i], sourceFile, 'utf8'); } });

我想在我的 package 安裝后運行這個任務。 為此,我分析發現我們可以使用npm postinstall

然后我嘗試如下:

 "dependencies": { "postinstall": "*" }, "scripts": { "postinstall": "gulp tag-change", "packagr": "ng-packagr -p ng-package.json && gulp npmrc-changelog-schematics-injection && gulp path-change" }

但它會引發以下錯誤:

在此處輸入圖像描述

我已經從這個問題中引用了這個 gulp 任務參考 - 在 NPM ZEFE90A8E604A7C840E88D03A 之后運行 gulp 任務

我的 package 結構如下所示: 在此處輸入圖像描述

最后,我找到了滿足我要求的解決方案。

我創建了一個tagchange.js文件並放置了以下內容。

 var fs = require('fs'); var glob = require('glob'); var files = glob.sync('./@syncfusion/*'); for (var i = 0; i < files.length; i++) { var sourceFile = fs.readFileSync(files[i],'utf8'); sourceFile = sourceFile.replace(`selector: '[ejs-button]'`,`selector: '[Kumar-button]'`); fs.writeFileSync(files[i], sourceFile, 'utf8'); }

我在我的 package package.json文件中調用了它,如下所示:

 "dependencies": { "postinstall": "*" }, "scripts": { "postinstall": "node./tagchange.js", "packagr": "ng-packagr -p ng-package.json && gulp npmrc-changelog-schematics-injection && gulp path-change" }

它工作正常

 gulp.task('tag-change', function () { // var files = fs.readFileSync('./node_modules/@syncfusion/ej2-angular-buttons/@syncfusion/ej2-angular-buttons.es5.js', 'utf8'); var files = glob.sync('./dist/@syncfusion/*'); for (var i = 0; i < files.length; i++) { var sourceFile = fs.readFileSync(files[i],'utf8'); sourceFile = sourceFile.replace(`selector: '[ejs-button]'`,`selector: '[KD-button]'`); fs.writeFileSync(files[i], sourceFile, 'utf8'); } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM