使用rollup.config.js文件收到以下错误消息
warning.indexOf不是函数
rollup.config.js
import nodeResolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs';
import uglify from 'rollup-plugin-uglify'
//paths are relative to the execution path
export default {
entry: 'src/main-aot.js',
dest: 'aot/dist/build.js', // output a single application bundle
sourceMap: true,
sourceMapFile: 'aot/dist/build.js.map',
format: 'iife',
onwarn: function (warning) {
// Skip certain warnings
// should intercept ... but doesn't in some rollup versions
if (warning.code === 'THIS_IS_UNDEFINED') { return; }
// intercepts in some rollup versions
if (warning.indexOf("The 'this' keyword is equivalent to 'undefined'") > -1) { return; }
if (warning.indexOf("Use of `eval` ") > -1) {
return;
}
// console.warn everything else
console.warn(warning.message);
},
plugins: [
nodeResolve({ jsnext: true, module: true }),
commonjs({
include: 'node_modules/rxjs/**',
}),
uglify()
]
}
pacakge.json
“汇总”:“^ 0.41.6”, “rollup-plugin-commonjs”:“^ 8.0.2”, “rollup-plugin-node-resolve”:“^ 3.0.0”, “rollup-plugin-uglify”:“^ 1.0.1”,
答案 0 :(得分:0)
警告本身似乎是一个对象而不是一个字符串。 所以我将带有.indexOf语句的行更改为后续语句:
if ( warning.message.indexOf("The 'this' keyword is equivalent to 'undefined'") > -1 ) { return; }
因此避免了错误,但我不知道这是否是正确的解决方案。因为当我尝试汇总我的angular2应用程序时,我得到了几个"未导出"的错误。 但你可以尝试一下,也许它可以帮助你。