2

使用@​now/node-server,我正在努力实现这一目标:

const myLocalLibrary = require('@src/lib/myLocalLibrary');

代替

const myLocalLibrary = require('../../../lib/myLocalLibrary');

问题是我尝试了多种不起作用的方法,包括:

设置NODE_PATH=src和使用require('src/...

不起作用,因为将 NODE_PATH 设置为 env 无效

修补需要使用模块别名(https://www.npmjs.com/package/module-alias

在本地工作,在 Zeit 上失败,因为节点找不到使用该模块的任何文件。

我用了:

require("module-alias").addAlias("~", __dirname);

有没有办法做到这一点?

4

2 回答 2

0

你可以用这个

    "build": {
     "env": {
        "NODE_PATH": "src/"
        }
      }
于 2019-05-08T20:21:29.670 回答
0

您的解决方案无法在 ZEIT Now 上构建的原因可能是它只能在运行时运行,而 Now 需要在构建时解析路径。您可以尝试使用此处描述babel-plugin-root-import代替。

或者,如果您只想在Next.jsZEIT Now中使用绝对导入,请参阅此问题

于 2019-07-27T22:32:51.437 回答