You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
const TARGET = process.env.npm_lifecycle_event;
if (TARGET === 'test') {
console.log(`Running the test task!`);
}
if (TARGET === 'pretest') {
console.log(`Running the pretest task!`);
}
if (TARGET === 'posttest') {
console.log(`Running the posttest task!`);
}
变量
npm 脚本有一个非常强大的功能,就是可以使用 npm 的内部变量。
首先,通过npm_package_前缀,npm 脚本可以拿到package.json里面的字段。例如,可以通过npm_package_repository_type取到package.json里repository.type的值
然后,npm 脚本还可以通过npm_config_前缀,拿到 npm 的配置变量,即npm config get xxx命令返回的值。比如,当前模块的发行标签,可以通过npm_config_tag取到。
注意,package.json里面的config对象,可以被环境变量覆盖。
向 npm 脚本传入参数,要使用--标明
也可以在package.json里面再封装一个命令。
npm 脚本有pre和post两个钩子。举例来说,build脚本命令的钩子就是prebuild和postbuild
npm 提供一个npm_lifecycle_event变量,返回当前正在运行的脚本名称,比如pretest、test、posttest等等。所以,可以利用这个变量,在同一个脚本文件里面,为不同的npm scripts命令编写代码。请看下面的例子。
npm 脚本有一个非常强大的功能,就是可以使用 npm 的内部变量。
首先,通过npm_package_前缀,npm 脚本可以拿到package.json里面的字段。例如,可以通过npm_package_repository_type取到package.json里repository.type的值
然后,npm 脚本还可以通过npm_config_前缀,拿到 npm 的配置变量,即npm config get xxx命令返回的值。比如,当前模块的发行标签,可以通过npm_config_tag取到。
注意,package.json里面的config对象,可以被环境变量覆盖。
上面代码中,npm_package_config_port变量返回的是8080。这个值可以用下面的方法覆盖。
Reference:
npm scripts
The text was updated successfully, but these errors were encountered: