2017-04-22 264 views
3

我試圖用Rollup.js捆綁Angular2模塊 這是我的rollup.config.vendor.js文件:rollup.JS和「‘這個’關鍵字等同於‘未定義’

import typescript from 'rollup-plugin-typescript2'; 
import resolve from 'rollup-plugin-node-resolve'; 
import commonjs from 'rollup-plugin-commonjs'; 

export default { 
    entry: 'vendor.ts', 
    dest: './Bundle/vendor.js', 
    format: 'iife', 
    moduleName: 'vendor', 
    plugins: [ 
     typescript(), 
     resolve({ 
      jsnext: true, 
      main: true, 
      browser: true 
     }), 
     commonjs({ 
      include: 'node_modules/rxjs/**', 
     }), 
    ] 
} 

它創建了一個捆綁的JS,但在這個過程中它使打印此類型的消息:

The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten 
https://github.com/rollup/rollup/wiki/Troubleshooting#this-is-undefined 
node_modules\@angular\forms\@angular\forms.es5.js (1:25) 
1: var __extends = (this && this.__extends) || function (d, b) { 
          ^
2:  for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; 
3:  function __() { this.constructor = d; } 

是什麼意思
我是不是做錯了什麼或者是它應該是這樣

回答

6

你可以放心地忽略這些警告是通過將onwarn屬性爲您rollup-config.js文件中documentation解釋說:

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); 
} 

報價:

它覆蓋默認onwarn方法以跳過煩人的信息關於AOT編譯器的使用this關鍵字。