2017-08-19 54 views
4

我是Javascript新手,我使用Visual代碼作爲IDE來處理Javascript。module.export不導出文件,要導入main.js

我會通過一些教程和我遇到我解決我失敗的問題它

我使用module.export導出我的js文件,我使用需要在我的主文件中使用它。但是,它不起作用,因爲我預計會彈出警告消息。

以下是我的代碼

**task.js** 
    /* jshint node: true */ 
    'use strict'; 
    class Task { 

      constructor(name) { 
       this.name = name; 
      } 

      completed() { 
       alert(this.name); 
      } 
    } 
    module.export = Task; 

    **cat.js** 
    /* jshint node: true */ 
    'use strict'; 
    function Cat(name) { 
     this.name = name; 

     this.toString = function() { 
       alert(name); 
     }; 
    } 

    Cat.prototype.complete = function() { 
     console.log('Completed'); 
    }; 
    module.export = Cat; 

    **main.js** 
    var Task = require('./task'); 
    var Cat = require('./cat'); 
    // Ways to create instances. 

    var task1 = new Task("A"); 

    task1.completed(); 


    var cat1 = new Cat("Fluffy"); 
    cat1.toString(); 
    cat1.complete(); 

    **Demo1.html** 
    <!DOCTYPE html> 
    <html> 
     <head> 

     </head> 
     <body> 
     <h1> Hello! </h1> 
     <p id="demo"></p> 

     <script type="text/javascript" src="script/main.js"></script> 
     </body> 
    </html> 

目錄結構:

.vscode 
    script 
    cat.js 
    task.js 
    main.js 
demo1.html 

我不是在輸出控制檯收到錯誤。任何幫助,將不勝感激。

+0

您正在使用哪個模塊打包機? –

+0

我不確定。我如何檢查? – LifeStartsAtHelloWorld

+0

你會知道,因爲你必須設置它。除非vscode對你來說是神奇的(不知道)。一般來說,瀏覽器不支持Node使用的CommonJS模塊系統,所以除非有某種方式捆綁模塊,否則這將不起作用(並且您應該看到一個錯誤)。 –

回答

1

看起來你只是有一個錯字!使用module.exports而不是module.export

Node.js Documentation

如果你有興趣在JavaScript的未來,你可以看看exportExport Doc),其中有稍微不同的語法。它還不被大多數瀏覽器支持,所以需要使用它的轉譯器。

+0

感謝您的糾正。但是,這並沒有解決它。我真的希望能解決這個問題。 – LifeStartsAtHelloWorld

+0

我會嘗試閱讀文檔,看看我能否解決這個問題。謝謝 – LifeStartsAtHelloWorld

+1

它在Cloud9上工作,所以我不知道什麼是錯的。這讓我意識到我需要了解JS的整個設置,而不僅僅是編碼部分。儘管感謝您的幫助。 – LifeStartsAtHelloWorld