NPM包后运行任务,一饮而尽没有安装任何命令(Run gulp task after NPM pac

2019-10-29 08:13发布

我已经开发了一种在npmjs主办的小角度包。 当我尝试安装我的包我想改变我的“选择”的名字,让我写了一口任务象下面这样:

 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'); } }); 

我希望得到我的安装包后运行此任务。 对于这一点,我已经分析,发现我们能够使用NPM安装后 。

然后我试图象下面这样:

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

但它抛出以下错误:

-我已经提到这个问题,这个任务一饮而尽参考后NPM包安装运行一饮而尽任务

我的包结构lokks象下面这样:

Answer 1:

最后,我找到了一个解决方案,实现我的要求。

我创建了一个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.json象下面这样的文件:

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

这是工作的罚款



Answer 2:

 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'); } }); 



文章来源: Run gulp task after NPM package install without any command