节点:如何扩展 module.paths
node: how to extend module.paths
我需要通过 require 访问我的自定义静态文件。
因此,我创建了一个目录 'assets' 并将其提升到 package:
|-assets
| |-default-asset.json
| |-package.json
其中 package.json 看起来像这样:
{
"name": "assets",
"version": "1.0.0",
"main": "./default-asset.json"
}
我需要将 "main" 属性 设置为包中存在的内容,以免被节点忽略。然而,现在这个包是 node_modules 库根目录的一部分。
但是当我调用节点检查时 module.paths 它仍然没有列出:
(base) ➜ server git:(master) ✗ node
Welcome to Node.js v12.13.1.
Type ".help" for more information.
> module.paths
[
'/.../server/repl/node_modules',
'/.../server/node_modules',
'/.../node_modules',
'/user/node_modules',
'/home/node_modules',
'/node_modules',
'/home/user/.node_modules',
'/home/user/.node_libraries',
'/usr/lib/node'
]
>
这可能是个问题,因为在尝试从文件夹中获取其中一个文件时,我仍然遇到异常:
internal/modules/cjs/loader.js:800
throw err;
^
Error: Cannot find module './assets/default-asset.json'
Require stack:
...
是的,我终于设法修复了它,对于任何其他遇到此问题的人来说,方法如下:
- 需要从 app/package.json 和
中引用自定义包
- 更重要的是,来自带有
"version": "file:custom-assets"
注释的 package-lock.json!
- package.json 必须包含一个 "main" 条目,该条目引用其中一个文件,其路径必须以
./
开头!!!
- 资产的使用不能以
./
开头,而是/
!!!
现在路径就在那里:
$ node
> module.paths
[
'.../important-code-snippets/JavaScript/require-custom-assets/repl/node_modules',
'.../important-code-snippets/JavaScript/require-custom-assets/node_modules',
这里还有一个完整的 运行 示例:https://github.com/Macilias/important-code-snippets/tree/master/JavaScript/require-custom-assets
我需要通过 require 访问我的自定义静态文件。 因此,我创建了一个目录 'assets' 并将其提升到 package:
|-assets
| |-default-asset.json
| |-package.json
其中 package.json 看起来像这样:
{
"name": "assets",
"version": "1.0.0",
"main": "./default-asset.json"
}
我需要将 "main" 属性 设置为包中存在的内容,以免被节点忽略。然而,现在这个包是 node_modules 库根目录的一部分。
但是当我调用节点检查时 module.paths 它仍然没有列出:
(base) ➜ server git:(master) ✗ node
Welcome to Node.js v12.13.1.
Type ".help" for more information.
> module.paths
[
'/.../server/repl/node_modules',
'/.../server/node_modules',
'/.../node_modules',
'/user/node_modules',
'/home/node_modules',
'/node_modules',
'/home/user/.node_modules',
'/home/user/.node_libraries',
'/usr/lib/node'
]
>
这可能是个问题,因为在尝试从文件夹中获取其中一个文件时,我仍然遇到异常:
internal/modules/cjs/loader.js:800
throw err;
^
Error: Cannot find module './assets/default-asset.json'
Require stack:
...
是的,我终于设法修复了它,对于任何其他遇到此问题的人来说,方法如下:
- 需要从 app/package.json 和 中引用自定义包
- 更重要的是,来自带有
"version": "file:custom-assets"
注释的 package-lock.json! - package.json 必须包含一个 "main" 条目,该条目引用其中一个文件,其路径必须以
./
开头!!! - 资产的使用不能以
./
开头,而是/
!!!
现在路径就在那里:
$ node
> module.paths
[
'.../important-code-snippets/JavaScript/require-custom-assets/repl/node_modules',
'.../important-code-snippets/JavaScript/require-custom-assets/node_modules',
这里还有一个完整的 运行 示例:https://github.com/Macilias/important-code-snippets/tree/master/JavaScript/require-custom-assets