- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以从 package.json 的 "scripts"
部分中的配置文件中读取内容?
问题背景:我们是几个开发人员,他们都在同一台终端服务器上工作。我们的 package.json 中有以下部分
...
"scripts": {
"serve": "vue-cli-service serve --port 8080"
}
...
由于我们位于同一服务器上,因此我们需要一种方法来指定不同的端口。一种可能性是使用命令行参数。但我希望有一种“更简单”的方式,我可以将端口存储在配置文件中,并将其添加到 .gitignore
中,这样每个开发人员都可以拥有自己的文件,我们只需键入 npm runserve
无需考虑输入端口。
也许有更好的方法来做我想做的事。我愿意接受建议。
最佳答案
One possibility is to use a command line parameter.
是的,为此您需要配置 serve
package.json 中的脚本如下:
"scripts": {
"serve": "vue-cli-service serve --port"
}
然后通过 CLI 工具运行:
npm run serve -- <port_number>
注意:<port_number>
参数应替换为真实的端口号,例如8080
, 3000
等等...
...I would appreciate an "easier" way where I can store a port in a config file ...
配置文件:
假设我们有一个任意命名为 .portnumber
的文件它保存在项目的根目录中。例如:
.
├── .gitignore
├── .portnumber <------
├── node_modules
│ └── ...
├── package.json
└── ...
以及 .portnumber
的内容文件包含仅要使用的端口号。例如:
3000
<小时/>
在 *nix 平台上运行 npm 脚本时,npm 使用的默认 shell 是 sh
。因此,以下内容将起作用。
package.json
"scripts": {
"serve": "vue-cli-service serve --port \"$(<.portnumber)\""
}
$(<.portnumber)
上面的部分本质上读取 .portnumber
的内容文件(这就是 <.portnumber
部分的作用),并利用 command Substitution .
鉴于.portnumber
文件包含3000
在 npm 脚本中执行的命令实际上是:
vue-cli-service serve --port 3000
您也可以这样做:
package.json
"scripts": {
"serve-with-default": "port=$(<.portnumber); vue-cli-service serve --port \"${port:-8080}\""
}
这与前面的非常相似,但是如果 .portnumber
文件不存在或为空,则默认使用 8080
端口号。
对于跨平台解决方案(即在 Windows、Linux 和 macOS 上成功运行的解决方案),您需要利用 Nodejs 来实现您的要求。有几种不同的方法可以解决此问题,如以下标题为以下两个小节中所述:
创建一个名为 serve.js
的文件
serve.js
const readFileSync = require('fs').readFileSync;
const execSync = require('child_process').execSync;
const port = readFileSync('.portnumber', {encoding: 'utf8'});
execSync('vue-cli-service serve --port ' + port, {stdio: 'inherit'})
..并将其保存在您的项目目录中:
.
├── .gitignore
├── .portnumber <------
├── node_modules
│ └── ...
├── package.json
├── serve.js <------
└── ...
重新定义您的serve
npm脚本如下:
package.json
"scripts": {
"serve": "node serve"
}
说明:
serve.js
文件本质上执行以下操作:
利用内置的node.js readFileSync
阅读 .portnumber
的内容文件并将编号分配给 port
变量。
然后利用内置的node.js execSync
运行vue-cli-service serve --port
命令以及之前从 .portnumber
读取的端口号文件。
或者,您可以将您的 NodeJS/JavaScript 代码内联到 package.json 的脚本部分。在这种情况下,请重新定义您的 npm 脚本,如下所示:
package.json
"scripts": {
"serve" : "node -e \"require('child_process').execSync('vue-cli-service serve --port ' + require('fs').readFileSync('.portnumber', {encoding: 'utf8'}), {stdio: 'inherit'})\""
}
说明:
.js
的解决方案相同(尽管经过了重构)。文件,但是现在使用单独的 Nodejs 脚本/文件是多余的。-e
用于评估内联 JavaScript。关于node.js - 从 package.json 中脚本部分的配置文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60166049/
我在使用 io-ts 时遇到一些问题。我发现它确实缺乏文档,我取得的大部分进展都是通过 GitHub issues 取得的。不,我不明白 HKT,所以没有帮助。 基本上,我在其他地方创建一个类型,ty
我必须创建一个正则表达式来搜索整个文件,以找到与 Java XML 解析器的第一部分(但不是第二部分)的匹配项。这将用于防止某些 XXE 攻击。不幸的是,它确实必须是单个正则表达式,并且它确实需要搜索
我有一些简单的 Shared/_Header.cshtml 文件中的内容。 My Shared/_Layout.cshtml 通过调用插入该代码 @Html.Partial("_Header") 目前
我有一个 if-else 语句,其中: 条件 1:ID 匹配并且自动填充某些字段。然后 if 语句只填充其余字段 条件 2:ID 不匹配,所有字段均为空白。 ELSE 语句将它们全部填充 当我使条件
我正在开发一个单页滚动网站。我正在尝试实现 ScrollMagic 并固定第一部分,以便网站的其余部分滚动到固定部分的顶部。我尝试创建一个 jsfiddle 来显示问题,但我似乎无法让 jsfiddl
这是我的情况: 我想使用 Google AdWords 的转换脚本,但出于某种原因,他们代码段的 javascript 部分在我的页面上添加了一些我似乎无法摆脱的不需要的空白。 所以我正在查看的选项纯
寻找一种优雅的方式在页面上添加一次脚本,就是这样。 我有一个需要 2 个 CSS 文件和 2 个 JS 文件的部分 View 。在大多数地方,只需要其中 1 个部分 View 。但在单个页面上,我需要
我想要一个网站,该网站始终具有相同的部分,具有相同的 id 以及我想要显示的所有内容。我对 javascript 不太了解,我想知道如何删除除特定部分之外的所有内容。 最好的方法是否是只执行一个循环来
SQL 语句教程 (11) Group By 我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店 (store_name)
我试图理解部分并认为我已经明白了。基本上,这是一种将部分应用程序应用于二元运算符的方法。所以我了解所有(2*) , (+1)等例子就好了。 但是在 O'Reilly Real World Haskel
有没有办法禁止在部分中覆盖给定的关键字参数?假设我要创建函数 bar总是有 a设置为 1 .在以下代码中: from functools import partial def foo(a, b):
我有这个使用节的 OpenMP 代码 #pragma omp parallel sections num_threads(8) { printf_s("Allo fro
我正在尝试重新创建 Apple 制作的有缺陷的 CNContactPickerViewController,因此我有一个数据数组 [CNContact],我需要将其整齐地显示在 UITableView
我有一个相对布局,其中包含一些 float 在 GridView 上的 TextView 。当我在网格中选择一个项目时,布局向下移动到屏幕的尽头,只有大约 1/5 的部分是可见的。这是使用简单的翻译动
我想在我的 tableView 中有两个部分。我希望将项目添加到第 0 节,然后能够选择一行以将其从第 0 节移动到第 1 节。到目前为止,我已将这些项目添加到第 0 节,但是当它关闭时数据不会加
我正在以自由职业者的身份开发支付控制软件,但我有一些关于 mysql 的问题。 。我有一个用作日志的表,名为“Bitacora”。在表中,我有一个名为 idCliente 的列,它是自己表中一个人的
我有一个 PFQueryTableViewController,我想向 tableview 添加部分,我这样尝试: - (PFQuery *)queryForTable { PFQuery *qu
我正在尝试编写一个查询,将部分匹配项与存储的名称值进行匹配。 我的数据库如下所示 Blockquote FirstName | Middle Name | Surname --------------
我正在开发一个语音备忘录应用程序,并且正在将文件保存到表格 View 中。我希望默认文件名显示为“新文件 1”,如果使用“新文件 1”,则它会显示为“新文件 2”,依此类推。 我正在尝试使用 do-w
我有以下简单的 HTML 布局 .section1 { background: red; } .section2 { background: green; } .section3 { ba
我是一名优秀的程序员,十分优秀!