节点命令行应用程序全局包含文件
Node command-line application global include file
我正在尝试在 Node.js
中创建一个命令行应用程序
我有以下文件夹结构(可能不正确)
现在我的用户将使用 npm install -g
在全球范围内安装它,这样它就可以在任何项目中使用。
在我的代码 (index.js) 中,我有以下行:
fs.readFile('./helpers/tailwind.css', (err,css)=>{
})
问题是当我的用户 运行 它找不到文件,因为它试图在用户使用命令行应用程序的目录中找到该文件。
那么我如何从命令行应用程序读取数据folders/files?
无法从全局安装的包中加载文件(又名使用 require
或 import
)according to the docs - (as well as per this answer),因此您的用户需要在每个 repo 的基础上安装您的包.
话虽如此,您 may be able to accomplish this via OS env vars,但随后您 运行 遇到了不同的问题。比如你如何为 Windows 上的用户和 *nix 上的用户设置这些环境变量?
在您的 package.json 文件中,您可以添加一个 "bin"
道具,以便安装您的软件包的任何人都可以通过 "./node_modules/bin/helpers"
访问这些文件。 See here for more info
如果你不关心走 "bin"
路线(或者如果它不适用)那么你总是可以让你的用户做类似 "./node_modules/<your_package_name>/<some_dir>/<some.file>"
的事情(替换路径中必要的名称) .. 您 可能 也可以摆脱 "<your_package_name>/<some_dir>/<some.file>"
之类的东西,但是同样,这不能与全局包一起使用。
我正在尝试在 Node.js
中创建一个命令行应用程序我有以下文件夹结构(可能不正确)
现在我的用户将使用 npm install -g
在全球范围内安装它,这样它就可以在任何项目中使用。
在我的代码 (index.js) 中,我有以下行:
fs.readFile('./helpers/tailwind.css', (err,css)=>{
})
问题是当我的用户 运行 它找不到文件,因为它试图在用户使用命令行应用程序的目录中找到该文件。
那么我如何从命令行应用程序读取数据folders/files?
无法从全局安装的包中加载文件(又名使用 require
或 import
)according to the docs - (as well as per this answer),因此您的用户需要在每个 repo 的基础上安装您的包.
话虽如此,您 may be able to accomplish this via OS env vars,但随后您 运行 遇到了不同的问题。比如你如何为 Windows 上的用户和 *nix 上的用户设置这些环境变量?
在您的 package.json 文件中,您可以添加一个 "bin"
道具,以便安装您的软件包的任何人都可以通过 "./node_modules/bin/helpers"
访问这些文件。 See here for more info
如果你不关心走 "bin"
路线(或者如果它不适用)那么你总是可以让你的用户做类似 "./node_modules/<your_package_name>/<some_dir>/<some.file>"
的事情(替换路径中必要的名称) .. 您 可能 也可以摆脱 "<your_package_name>/<some_dir>/<some.file>"
之类的东西,但是同样,这不能与全局包一起使用。