“warning.indexOf不是函数”rollup.js

时间:2017-04-07 10:33:12

标签: angular angular2-aot rollupjs

使用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”,

1 个答案:

答案 0 :(得分:0)

警告本身似乎是一个对象而不是一个字符串。 所以我将带有.indexOf语句的行更改为后续语句:

if ( warning.message.indexOf("The 'this' keyword is equivalent to 'undefined'") > -1 ) { return; }

因此避免了错误,但我不知道这是否是正确的解决方案。因为当我尝试汇总我的angular2应用程序时,我得到了几个"未导出"的错误。 但你可以尝试一下,也许它可以帮助你。