NODE_PATH或zeit / now.sh上具有节点服务器的任何模块别名

时间:2018-12-12 15:48:41

标签: zeit-now

我正在尝试使用@​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);

有什么办法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

您的解决方案无法在ZEIT Now上构建的原因可能是 仅在运行时有效,现在需要在构建时解析路径。您可以尝试像babel-plugin-root-import一样使用described here

或者,如果您只想对Next.jsZEIT Now使用绝对导入,请参见this question

答案 1 :(得分:-1)

您可以使用this

    "build": {
     "env": {
        "NODE_PATH": "src/"
        }
      }