npm常用模块之cross-env使用
更多npm常用模块使用请访问:npm常用模块汇总
cross-env这是一款运行跨平台设置和使用环境变量的脚本。
为什么需要cross-env?
NODE_ENV=production像这样设置环境变量时,大多数Windows命令提示符都会阻塞 。(Windows上的Bash是例外,它使用本机Bash。)同样,Windows和POSIX命令使用环境变量的方式也有所不同。对于POSIX,您可以使用:$ENV_VAR 和在Windows上可以使用%ENV_VAR%。
cross-env这样,您就可以使用单个命令,而不必担心为平台正确设置或使用环境变量。就像在POSIX系统上运行时一样,只需对其进行设置即可,并且cross-env会妥善设置。
在window下配置
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在
set NODE_ENV
#如果不存在则添加环境变量
set NODE_ENV=production
#环境变量追加值 set 变量名=%变量名%;变量内容
set path=%path%;C:\web;C:\Tools
#某些时候需要删除环境变量
set NODE_ENV=
在linux下配置
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在
echo $NODE_ENV
#如果不存在则添加环境变量
export NODE_ENV=production
#环境变量追加值
export path=$path:/home/download:/usr/local/
#某些时候需要删除环境变量
unset NODE_ENV
#某些时候需要显示所有的环境变量
env
安装
一键安装不多解释
npm install --save-dev cross-env
警告!确保在安装软件包时可以正确拼写,以免错误安装恶意软件
注意:cross-env的版本6仅支持Node.js 8和更高版本,才能在Node.js 7或更低版本的安装版本5上使用
npm install --save-dev cross-env@5
使用
我在npm脚本中使用了它:
{
"scripts": {
"build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
}
}
最终,执行的命令(使用cross-spawn)为:
webpack --config build/webpack.config.js
该NODE_ENV环境变量将被设置cross-env
您也可以将命令拆分为多个命令,或者将环境变量声明与实际命令执行分开。您可以这样操作:
{
"scripts": {
"parentScript": "cross-env GREET=\"Joe\" npm run childScript",
"childScript": "cross-env-shell \"echo Hello $GREET\""
}
}
其中childScript包含要执行的实际命令并parentScript设置要使用的环境变量。然后,而不是运行childScript,而是运行父项。这对于使用不同的env变量启动同一命令或当环境变量太长而无法将所有内容放在一行中时非常有用。这也意味着$GREET即使在通常要求使用Windows的Windows上,也可以使用env var语法%GREET%。
如果您在美元符号前加上奇数个反斜杠,则不会替换表达式语句。请注意,这意味着在转义JSON字符串后使用了反斜杠。"FOO=\\(BAR"将不会被替换。 "FOO=\\\\\)BAR"虽然会被替换。
最后,如果要传递JSON字符串(例如,使用ts-loader时),则可以执行以下操作:
{
"scripts": {
"test": "cross-env TS_NODE_COMPILER_OPTIONS={\\\"module\\\":\\\"commonjs\\\"} node some_file.test.ts"
}
}
要特别注意三倍反斜线(\\\)之前的 双引号 (")和缺少的单引号 (')。为了同时在Windows和UNIX上运行,必须同时满足这两个条件。
cross-env 与 cross-env-shell
该cross-env模块公开了两个容器:cross-env和cross-env-shell。第一个使用来执行命令cross-spawn,第二个使用shellNode的选项spawn。
主要用例cross-env-shell是当您需要在整个嵌入式命令行脚本中而不是仅在一个命令中设置环境变量时。
例如,如果您希望将环境变量应用于一系列串联的命令,则需要将其用引号引起来并使用 cross-env-shell代替cross-env。
{
"scripts": {
"greet": "cross-env-shell GREETING=Hi NAME=Joe \"echo $GREETING && echo $NAME\""
}
}
经验法则是:如果要传递给cross-env包含要解释的特殊Shell字符的命令,请使用 cross-env-shell。否则请坚持cross-env。
在Windows上cross-env-shell,如果要 在程序内部处理信号事件,则 需要使用。常见的情况是当您想要捕获SIGINT通过Ctrl + C在命令行界面上按调用的 事件时。
npm常用模块之cross-env使用的更多相关文章
- npm常用模块之bable使用
更多npm常用模块使用请访问:npm常用模块汇总 bable这是JavaScript编译器. Babel是一个工具链,主要用于在当前和较旧的浏览器或环境中将ECMAScript 2015+代码转换为J ...
- npm常用模块之mkdirp使用
更多npm常用模块使用请访问:npm常用模块汇总 mkdirp这是一款在node.js中像mkdir -p一样递归创建目录及其子目录. 更多使用文档请点击访问mkdirp工具官网. 安装 一键安装不多 ...
- npm常用模块汇总
npm常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 npx 使用教程:npx使用教程 bable:bable这是JavaScript编译器 ...
- npm常用模块之chai使用
更多npm常用模块使用请访问:npm常用模块汇总 chai这是一款用于节点和浏览器的BDD / TDD断言库,可以与任何javascript测试框架完美地配对. 更多使用文档请点击访问chai工具官网 ...
- npm常用模块
https://blog.csdn.net/heliumlau/article/details/70577727
- node常用模块汇总
node常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 mkdirp:在node.js中像mkdir -p一样递归创建目录及其子目录
- npm常用命令详解
~~~https://www.npmjs.org/有比较全的api文档 NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准.有了NPM,可以很快的找到特定服务要使用的 ...
- npm常用命令
npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...
- 进击的Python【第五章】:Python的高级应用(二)常用模块
Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigPar ...
随机推荐
- 腾讯云Centos服务器部署问题
在Centos7上部署Tomcat过程 下载并安装JDK 下载并部署Tomcat 打开Centos中对应的端口(默认80) 这几步操作很清楚,但首次使用Centos7时遇到了一个问题,外网无法访问服务 ...
- Python3(十一) 原生爬虫
一.爬虫实例 1.原理:文本分析并提取信息——正则表达式. 2.实例目的:爬取熊猫TV某个分类下面主播的人气排行 分析网站结构 操作:F12查看HTML信息,Ctrl+Shift+C鼠标选取后找到对应 ...
- javascript原生js轮播图
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- k8s系列---hpa扩容
centos-master:172.16.100.60 centos-minion:172.16.100.62 k8s,etcd,docker等都是采用yum装的,部署参考的k8s权威指南和一个视频, ...
- tomcat 多端口 多容器 多域名 配置
先强调一个原则: server下面可以有多个service,用于配置不同监听端口 service下面可以有多个Host,用于配置该端口下的不同域名 Host里可以包含多个Context,用于配置该端口 ...
- 搭建Samba服务器、多部门共享,互不干扰,超实用
案例二 实现不同的用户访问同一个共享目录具有不同的权限,便于管理和维护.基本上能满足一些企业用户的需求. 一. 需求 1. 某公司有3个大部门,分别为:人事行政部(HR).财务部(FM).技术支持部( ...
- MySql基础补漏笔记
在MySQL教程|菜鸟教程系统复习的时候有一些知识点还没掌握透的或者思维方式还没完全跟上的地方,写了一个笔记,讲道理此笔记对除我之外的任何读者不具有任何实用价值,只针对我在复习MySQL基础过程中的查 ...
- K8S集群入门:运行一个应用程序究竟需要多少集群?
如果你使用Kubernetes作为应用程序的操作平台,那么你应该会遇到一些有关使用集群的方式的基本问题: 你应该有多少集群? 它们应该多大? 它们应该包含什么? 本文将深入讨论这些问题,并分析你所拥有 ...
- 图解Java设计模式之设计模式面试题
图解Java设计模式之设计模式面试题 1.1 Java设计模式内容介绍 1.1.1 先看几个经典的面试题 1.1.2 设计模式的重要性 1.1 Java设计模式内容介绍 1.1.1 先看几个经典的面试 ...
- C#_.net core 3.0自定义读取.csv文件数据_解决首行不是标题的问题_Linqtocsv改进
linqtocsv文件有不太好的地方就是:无法设置标题的行数,默认首行就是标题,这不是很尴尬吗? 并不是所有的csv文件严格写的首行是标题,下面全是数据,我接受的任务就是读取很多.csv报表数据, ...