【发布时间】:2020-02-02 18:52:33
【问题描述】:
我开发了一个托管在 npmjs 上的小型 Angular 包。当我尝试安装我的包时,我想更改我的“选择器”名称,以便我编写了一个如下所示的 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');
}
});
我想在我的包安装后运行这个任务。为此,我分析了一下,发现可以使用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 任务参考 - Run gulp task after NPM package install
【问题讨论】:
-
sudo npm install --unsafe-perm--unsafe-per 标志 -
您的安装后工作正常,此错误与 gulp 有关,您应该深入研究。您在 package.json 中添加的安装后脚本没有问题。
-
这个命令是不是自己运行成功的
gulp tag-change --gulpfile ./tagchange.js -
嗨@Raymond,你能描述更多细节吗
-
嗨@Sathish,是的
标签: javascript node.js npm post-install