我正在尝试使用aot编译,但是当编译完成时, 控制台打印
Uncaught ReferenceError: require is not defined
build.js:1
build.js:1
我似乎无法找到解决此问题的正确解决方案。
这是我的rollup-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文件 !function(){" use strict&#34 ;; require(" ./ polyfills.ts"); var r = require(" @ angular / platform-browser-dynamic&#34 ),E =要求(" @角/核心&#34),O =需要(" ./环境/环境&#34)中,n =需要(" ../ AOT /src/app/app.module.ngfactory"); o.environment.production&安培;&安培; e.enableProdMode(),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 :(得分:0)
看来,汇总无法正确处理非普通imports like import "./polyfills.ts";
,同样它只能处理如下导入:import { something } from 'Anything';
我遇到了类似的错误。我从import "./polyfills.ts";
删除了main.ts
语句。而是在index.html
中添加脚本。然后由ngc
编译器node_modules/.bin/ngc -p tsconfig-aot.json
重新编译项目。之后使用build.js
生成node_modules/.bin/rollup -c rollup-config.js
文件。
希望这会有所帮助。我知道这不是一个好方法,但它可能有所帮助。