2017-05-24 75 views
1

我想使用AOT编译,但是当编译完成, 控制台打印AOT编译错误:未捕获的ReferenceError:要求没有定义

Uncaught ReferenceError: require is not defined 
build.js:1 
build.js:1 

我似乎无法找到一个妥善的解决办法解决这个问题。

这是我汇总-config.js文件

import rollup  from 'rollup' 
import nodeResolve from 'rollup-plugin-node-resolve' 
import commonjs from 'rollup-plugin-commonjs'; 
import uglify  from 'rollup-plugin-uglify' 

export default { 
    entry: 'src/main.js', 
    dest: 'src/build.js', // output a single application bundle 
    sourceMap: false, 
    format: 'iife', 
    onwarn: function(warning) { 
    // Skip certain warnings 

    // should intercept ... but doesn't in some rollup versions 
    if (warning.code === 'THIS_IS_UNDEFINED') { return; } 

    // console.warn everything else 
    console.warn(warning.message); 
    }, 
    plugins: [ 
     nodeResolve({jsnext: true, module: true}), 
     commonjs({ 
     include: 'node_modules/rxjs/**', 
     }), 
     uglify() 
    ] 
} 

这是我main.aot.ts文件

import './polyfills.ts'; 

    import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
    import { enableProdMode } from '@angular/core'; 
    import { environment } from './environments/environment'; 
    import { AppModuleNgFactory } from '../aot/src/app/app.module.ngfactory'; 

    if (environment.production) { 
     enableProdMode(); 
    } 

    platformBrowserDynamic().bootstrapModuleFactory(AppModuleNgFactory); 

这是我build.js文件 !函数() {“use strict”; require(“./ polyfills.ts”); var r = require(“@ angular/platform-b​​rowser-dynamic”),e = require(“@ angular/core”),o = require “./environments/environment"),n=require("../aot/src/app/app.module.ngfactory");o.environment.production & & e.enableProdMo德(),r.platformBrowserDynamic()bootstrapModuleFactory(n.AppModuleNgFactory)}();

错误发生在这里我猜。

最后,这是我的index.html文件

<!doctype html> 
    <html> 

    <head> 
     <meta charset="utf-8"> 

     <title>Among</title> 

     <base href="/"> 

     <script> 
      window.module = 'aot'; 
     </script> 

     <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <link rel="icon" type="image/x-icon" href="favicon.ico"> 


    </head> 

    <body> 
     <app-root> 
    Loading... 
     </app-root> 
    </body> 

    <script src="build.js"></script> 

    </html> 

请帮我找出解决方案。 谢谢!

回答

0

看来,汇总不能正确处理非一般imports like import "./polyfills.ts";,同样它只能处理进口这样的:import { something } from 'Anything';

我有一个类似的错误。我从main.ts删除了陈述import "./polyfills.ts";。请在index.html中添加脚本。然后通过ngc编译器重新编译项目node_modules/.bin/ngc -p tsconfig-aot.json然后使用node_modules/.bin/rollup -c rollup-config.js生成build.js文件。

希望这会有所帮助。我知道这不是好的方法,但它可能有帮助。

相关问题