我正在使用 babel 来转译 ES7 js 代码,一切都在开发/登台中发挥着巨大的作用。在应用程序内部,我非常依赖 ES7 的 async/await 特性。我的入口文件如下所示:

'use strict';
require("babel-polyfill");
require("babel-core/register");
module.exports = require('./app/server').default();

我不确定是否有必要为生产环境保留 babel-polyfill 和 babel-core/register 模块,因为我在部署之前使用 babel-cli 转换了所有内容。我认为即使我删除它们并使入口文件看起来像这样,它也必须正常工作:
import server from './app/server';
server();

但是,如果这样做,我在启动应用程序时会遇到下一个异常:
ReferenceError: regeneratorRuntime is not defined
    at C:\Users\Username\Documents\some-service\lib\app\repositories\someRepository.js:18:32
    at Object.<anonymous> (C:\Users\Username\Documents\some-service\lib\app\repositories\someRepository.js:40:2)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (C:\Users\Username\Documents\some-service\lib\app\controllers\someController.js:15:27)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (C:\Users\Username\Documents\some-service\lib\app\server.js:15:26)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)

在生产环境中引用 babel-polyfill 和 babel-core/register 包是否正常?

最佳答案

如果您在开发过程中依赖这些模块(babel-polyfill 和 babel-core/register),那么您的生产文件中也需要它们。转译过程不会添加类似 Object.assignPromise 的 polyfill。

docs page for the babel polyfills 没有明确说明您应该为开发和生产包含不同的库。但它确实说你需要为你想要的功能包含它或特定的 polyfill,这似乎表明你在任何环境中都需要它们。

简短回答:在每个环境中都包含 polyfill 是标准的,因为 babel 的转译不会自己添加 polyfill。

关于node.js - 在生产入口文件中使用 babel-polyfill,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42682368/

10-11 22:16
查看更多