我可以导入本地包到NodeJS脚本中吗?

问题描述 投票:0回答:1

我有一个这样的单一存储库:

套餐

  • API
  • 数据
  • 脚本
  • 实用工具

导出模块中分别有index.js。以及每个的 package.json 。

我在脚本目录中有一个脚本,并从 utils 文件夹中导入一个模块:

const { moduleName } = require('@packages/utils')

但是,我不断收到 cjsloader 错误:

> @packages/[email protected] myScript
> node -r dotenv/config --max-old-space-size=8192 ./data/myScript.js

node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module '@packages/utils'
Require stack:
- C:\Users\Me\Code\referral-domain\packages\scripts\data\myScript.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (C:\Users\Me\Code\referral-domain\packages\scripts\data\myScript.js:3:42)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\Me\\Code\\referral-domain\\packages\\scripts\\data\\myScript.js'
  ]
}

Node.js v18.18.2

我应该专门在这个脚本目录中安装纱线吗?当我尝试这样做时,它尝试从 npm 注册表获取 @packages,这是不正确的,因为它是本地包。

我还尝试使用“../../utils”,这似乎至少使导入错误消失。虽然这样它找不到 require('aws-resource-library').tools

{
  "name": "@packages/scripts",
  "main": "index.js",
  "description": "Scripts to fix bad data that can be run, break this out.",
  "version": "1.0.0",
  "dependencies": {
      "@packages/data": "1.0.0",
      "@packages/utils": "1.0.0",
      "api-clients": "git+https://git-codecommit.us-east-1.amazonaws.com/v1/repos/api-clients#3.3.10",
      "aws-resource-library": "git+https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-resource-library#0.0.158",
      "@app/opensearch-library": "^0.2.0"
},
  "devDependencies": {
      "dotenv": "8.2.0"
}

}

node.js package.json require
1个回答
0
投票

在这种情况下,我必须运行yarn bootstrap,它会为 monorepo 的每个部分重建依赖项和模块。

© www.soinside.com 2019 - 2024. All rights reserved.