【问题标题】:Node.js Babel build and npm module-aliasNode.js Babel 构建和 npm 模块别名
【发布时间】:2020-01-14 05:43:19
【问题描述】:

我在我的 Node.js + Express.js 项目中使用module-alias,并使用 Babel 运行它以获得 ES2015 支持。

应用程序在以babel-node 启动时运行良好,但是,如果我首先使用babel 构建它(来自package.json):

"build": "babel ./app --out-dir ./app_dist"

然后开始:

"start": "node ./app_dist/bin/www"

显然找不到模块别名指定的正确路径。 Node.js 没有查看 app_dist,而是在 app 中搜索 import,找到它不理解的 ES2015 import 指令并抛出:

SyntaxError: 意外的令牌导入

如果我在构建开始之前更改别名,从 appapp_dist,它可以工作,但问题是,如何映射这些别名(或如何使用不同的 _moduleAliases 配置)以便应用程序解析开发和生产的路径正确吗?

也许还有另一种方法可以为具有这种堆栈的模块起别名?提前致谢。

【问题讨论】:

标签: javascript node.js express alias babeljs


【解决方案1】:

找到解决此问题的方法。

为了使用module-alias 设置相对路径别名,它们不应该在package.json 中定义,而是在将被 Babel 转译的根目录内的 JavaScript 文件中。

就我而言,在config 目录中创建一个aliases.js 脚本,如下所示:

import path from 'path';
import moduleAlias from 'module-alias';

moduleAlias.addAlias('@root', path.resolve(__dirname, '../../'));

将导致路径相对于当前工作目录进行解析,从而解决所描述的问题。

【讨论】:

    猜你喜欢
    • 2020-07-06
    • 2016-02-01
    • 1970-01-01
    • 2017-10-07
    • 2016-02-22
    • 2014-01-17
    • 1970-01-01
    • 2016-02-10
    • 2019-12-26
    相关资源
    最近更新 更多