2017-07-19 83 views
3

我使用從cycle.js的例子如何使用打字稿使用webpack?

MyScript.ts

import { run } from '@cycle/run'; 
import {makeDOMDriver, div, button} from '@cycle/dom'; 
import _ from 'lodash'; 
import xs from 'xstream'; 


function main (sources) { 

    console.log('Hello World'); 

    const add$ = sources.DOM 
    .select('.add') 
    .events('click') 
    .map(ev => 1); 

    const count$ = add$.fold((total, change) => total + change, 0); 

    return { 
    DOM: count$.map(count => 
     div('.counter', [ 
     'Count: ' + count, 
     button('.add', 'Add') 
     ]) 
    ) 
    }; 
} 

const drivers = { 
    DOM: makeDOMDriver('.app') 
} 


run(main, drivers); 

當我編譯我的項目,它創建MyScripts.js

"use strict"; 
Object.defineProperty(exports, "__esModule", { value: true }); 
var run_1 = require("@cycle/run"); 
var dom_1 = require("@cycle/dom"); 

function main(sources) { 
    console.log('Hello World'); 
    var add$ = sources.DOM 
     .select('.add') 
     .events('click') 
     .map(function (ev) { return 1; }); 
    var count$ = add$.fold(function (total, change) { return total + change; }, 0); 
    return { 
     DOM: count$.map(function (count) { 
      return dom_1.div('.counter', [ 
       'Count: ' + count, 
       dom_1.button('.add', 'Add') 
      ]); 
     }) 
    }; 
} 
var drivers = { 
    DOM: dom_1.makeDOMDriver('.app') 
}; 
run_1.run(main, drivers); 
//# sourceMappingURL=MyScript.js.map 

當我檢查的頁面鉻我得到

Uncaught ReferenceError: exports is not defined 

MyScript.js行2

這個答案說我可能需要webpack。
gulp babel, exports is not defined

如何加載webpack?是不是像<script type='javascript' src='webpack' >

+1

的WebPack是構建工具,將您的Javascript代碼編譯爲瀏覽器就緒(網頁打包)代碼。瀏覽器不會(也不應該)知道如何處理導入語句。進口/出口僅用於組織您的源代碼。你不需要webpack,你可以通過代碼作爲外部工具運行它。推薦閱讀:http://blog.andrewray.me/webpack-when-to-use-and-why/ –

回答

0

我結束了使用systemjs作爲我模塊加載需要正確tson.config以及正確的映射關係system.configjs.js文件

的WebPack是替代模塊加載

1

在獲得基本的TypeScript環境設置的幾個月的問題後,我終於在昨天得到了它的工作,主要是通過複製這個初學者項目。

https://github.com/krasimir/webpack-library-starter

我不願意使用的WebPack,因爲它是安裝很多其他NPM包的嚴重依賴,但複製啓動項目是很容易,之後一切工作得很好。