首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使使用zeit-pkg打包的节点脚本了解完整的文件系统。

使使用zeit-pkg打包的节点脚本了解完整的文件系统。
EN

Stack Overflow用户
提问于 2018-04-17 12:14:09
回答 1查看 1.9K关注 0票数 0

我有一个节点脚本,它使用使用模块commander的命令行参数。

我想用pkg包装它,但我遇到了一些麻烦。

通常,我会用以下方式执行我的脚本:

代码语言:javascript
运行
复制
node index.js --file ./test.csv

但是文件参数可以指向用户文件系统中的任何文件夹。

我已经研究了如何为assetsscripts属性配置package.json中的pkg,但是您似乎需要在其中指定一个文件夹,例如:

代码语言:javascript
运行
复制
"pkg": {
    "scripts": "build/**/*.js",
    "assets": "views/**/*"
  }

如何使zeit-pkg打包的节点脚本知道文件系统中任何可能的位置?

我只是简单地使用pkg package.json构建,因为在package.json中我有以下条目:

代码语言:javascript
运行
复制
"bin" : "index.js"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-11 13:00:17

在您的pkg打包的源代码中,在开头添加以下内容:

代码语言:javascript
运行
复制
console.log("process.cwd() = " + process.cwd());

当您运行打包的exe时,这将告诉您可执行文件所看到的作为其工作目录的内容。然后,您可以解释应用程序的任何相对arg路径(比如"./index.csv")。

根据我的实验,只要你的程序知道你想读或写的文件的绝对路径,甚至“需要”,pkg-应用程序就可以完全访问文件系统。

唯一棘手的事情似乎是相对路径。原因是pkg希望您能够将资源/资产-files打包到可执行文件中,然后像在运行时访问任何文件一样访问它们。这实际上是一个很棒的特性,但通常比您需要的要多。

如果您不需要将任何(额外的)文件打包到您的可执行文件中,那么文件系统访问应该是简单的,并且正常使用绝对路径。如果你想使用相对路径,你只需要知道“你在哪里”。

我不附属于pkg项目,所以我的答案在任何方面都不是权威的。我希望zeit能把更多关于文件系统访问的文档放到他们的网站上,特别是跨平台。在自己做了一些实验之后,在Windows上,通过它们的绝对路径来访问文件似乎是可行的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49877845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档