问题标签 [npm-scripts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
191 浏览

node.js - PostCSS cli 在解释源映射时遇到来自标准输入的最大行长

我的 package.json 中有一个 sass 编译设置,如下所示:

一段时间以来,这一直运行良好以创建外部源映射。但是最近它因 postcss 引发未关闭的评论错误而失败。有问题的评论是 sourceMappingURL 的开始标签。sourceMappingURL 被 node-sass 嵌入为带有--source-map-embed true命令的 dataUri,这是源映射完全使用此方法所必需的,因为如果 node-sass 将输出管道输出到 stdout,它似乎不会将它们写入文件.

我猜 dataUri 已经很长了,它达到了某种最大行长度。我不确定这个限制是在 bash(我在 Mac OSX 上)、node.js 还是 postcss-cli 中?是我可以手动增加的东西,还是有其他解决方法?

更新: 经过进一步研究,问题似乎源于read-file-stdin,它从 process.stdin 返回一个不完整的文件。我对节点流不太熟悉,但read-file-stdin依赖于stream.pipe读取数据,我相信使用gather-stream将流块收集在一起。但是,这是行不通的。如果我将css脚本更改为以下内容:以下内容npm run sass -s | test.js在哪里test.js

控制台输出是一个不完整的文件

0 投票
2 回答
1465 浏览

css - 管道未按预期工作 npm 脚本

我试图通过将转译的 css 作为第一个参数传递给 cssnano 来使用 cssnano 压缩我的 sass 文件。它不工作,因为它只创建一个空白文件。第一个脚本正确运行并创建压缩的 css 文件。这是我的 package.json

0 投票
2 回答
5153 浏览

javascript - 如何根据另一个输出设置条件 npm 脚本?

这是我之前尝试使用 npm 脚本进行设置时遇到的一个问题,但我无法解决它。甚至不确定这是可能的,最好我希望该解决方案在 Mac 和 Windows 环境中都可以工作。

我正在尝试将我的 npm 脚本的一些逻辑拆分为几个可以相互调用的短脚本。这与变量的结合将使脚本更好地为其他开发人员维护和阅读。

但是我不知道如何在另一个中使用一个 npm 脚本的结果。我几乎不是 bash 专家,所以为什么我在这里寻求帮助(:

在这个例子中,我试图设置一个脚本,允许开发人员轻松启动一个 docker(虚拟)环境。

在 package.json 中:

所以这里我有一个变量,其中包含要运行的 docker 容器的名称:$npm_package_config_docker_container.

当我这样做npm run container_running时,如果容器正在运行,这将返回 true,或者如果容器不存在则抛出错误,在这种情况下它将返回echo 'false'。到目前为止,一切都很好。

现在我希望启动脚本检查容器是否正在运行,如果是,则停止容器并开始新的运行并且它没有运行只是开始新的运行。所以是这样的:

那么问题是如何实现这一目标?作为一个额外的问题,这可以在 Mac 和 Windows 环境中以兼容的方式完成吗?

任何帮助将非常感激!!

0 投票
0 回答
281 浏览

node.js - npm-script 钩子上的安静输出

每次我升级包的版本时,我都想将该版本写入文件中以用于构建目的。

我做了一个钩子,这样我就可以在每次抽取版本时postversion执行我的脚本(通过)。write-versionnpm version

包.json

这可行,但我想隐藏它生成的以下输出:

命令行界面

有没有办法做到这一点?

0 投票
2 回答
4029 浏览

npm - 如何以适用于 Windows 和 linux 的方式遍历 npm 中的文件?

我正在尝试在多个文件上运行单个命令(jshint)。我的 package.json 包含

"lint": "jshint *.js **/*.js"

然而,这在 Windows 上失败得很惨。在 Windows 上,迭代多个文件的语法是

是否有一种简单的、与平台无关的方法来在多个文件上运行单个 npm 脚本(例如 jshint)?

(我对通用解决方案感兴趣。这里有一个使用node-jslint 而不是 jshint 的参考,它确实支持多个文件......但 IMO jshint >> jslint)。

0 投票
0 回答
885 浏览

node.js - 在 postinstall 上安装 npm 包

我有一个具有对等依赖关系的npm 包。我写了一个简短的安装后脚本,它会提示用户安装对等依赖项,但它不起作用。

正如您将从下面的输出中看到的那样,看起来 npm正在下载包,但它没有出现在项目的任何地方,package.json不在node_modules.

我正在运行 ubuntu 16.04 顺便说一句

这是我安装 npm 包时发生的情况:

这是脚本:

我想在自己的 repo 上拥有这个 postinstall 脚本,以便其他 npm 作者可以轻松地将其复制到他们自己的项目中。

有任何想法吗?这甚至可能吗?

0 投票
3 回答
4329 浏览

node.js - 更改文件时如何使用 nodemon 在 npm 脚本上重新启动多个服务器文件

当我更改文件夹上的文件时,我想在 npm 脚本中使用 nodemon 重新启动两个服务器文件

这是我的 npm 脚本

0 投票
1 回答
1081 浏览

node.js - 如何在“npm run”中获取文件列表