获取npm gulp调用的路径

时间:2016-12-28 16:59:30

标签: node.js gulp

gulp和npm的新功能,我正在尝试编写一个考虑当前目录的脚本:

gulp.task('render', function(){
    var folder = process.cwd();
    console.info("I am called from:" + folder);
    //renderThisData(folder + "/data.json");
})

我也尝试了这个,它给出了相同的结果:

gulp.task('render', function(){
    var folder = process.env.INIT_CWD;
    console.info("I am called from:" + folder);
    //renderThisData(folder + "/data.json");
})

我的树就像:

root
|--- package.json
|--- gulpfile.js
|--- folder1
|    |--- data.json
|--- folder2
|    |--- data.json
|--- folder3
|    |--- data.json

当我从一个特定文件夹中运行脚本时,上面的脚本总是给出了gulpfile所在的路径: - (

D:\root\folder1>npm run render
I am called from D:\root

我找到的一项工作是使用参数:

 npm run render -- --folder=folder1

然后在我的代码中读取/使用param值。 我想知道是否有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

npm run将始终从您的根目录运行(如果您的脚本中没有更改)。

如果您可以运行process.env.INIT_CWD而不是使用gulp 'task'或传递文件夹名称,则可以使用npm这是从其启动的原始cwd(在版本3.8.1中添加)按参数npm run render -- --folder=${PWD##*/}