2017-03-06 44 views
1

這可能不是問題,但我注意到,在命令提示符下(在Windows 10中)發出命令express時,實際運行的是\ node_modules \ express-generator \ bin \ express,而不是\ node_modules \ express \ lib \ express.js代碼。我知道節點實際上並不需要.js擴展名,但我習慣於捆綁的Linux批處理文件(在我的系統上也沒有擴展名)和擴展名爲.cmd的Windows批處理文件之間的區別,以及這讓我想知道我下載的快遞版本的有效性。在他們使用express_generator的新方法中,他們只是爲Windows和Linux提供一個JavaScript文件?我得到了正確的嗎? 。 。 。 順便說一下,有問題的快速文件確實在頂部有一個shebang行,特別是#!/ usr/bin/env節點。這當然意味着該文件已經爲Linux定製。當然,shebang行會在窗口上被忽略,但它確實會讓人停頓一下。 。 。 。 感謝您的任何援助在Windows上運行express(express_generator)運行一個名爲express express的文件,NOT express.js

+0

確實我有這個問題,試圖解決它,但這不工作這個我的操作系統。 –

回答

0

TL; DR:一切看起來都正常。

express\lib\express.js是Express模塊​​的一部分,它是開發人員用來開發Express應用程序的實際代碼。該文件不能直接從命令行使用。

express-generator\bin\expressexpress-generator提供的用於創建Express項目目錄的命令行工具。這意味着要從命令行運行。

在Linux/Unix上,命令行工具通常沒有擴展名(你已經提到的東西)。這些工具可以使用任意數量的不同編程語言實現,包括Javascript。 Linux知道使用哪個解釋器來使用shebang行來運行該工具。我不知道如何處理這些擴展命令行工具,但只要express(CLI工具)的作品,我不會擔心太多。

+1

我並不是很擔心。我只是想知道所有這些子文件夾結構。我覺得有時候會覺得很有趣 - 特別是在模塊子文件夾中 - 他們會添加.js擴展名,但有時候他們不會。他們可能確信在這些情況下它可以在兩個平臺上運行。非常感謝回覆。 – Tallisfan

+0

@Tallisfan一般的經驗法則是,打算作爲命令行腳本運行的文件沒有擴展名,以及打算以編程方式使用的文件。 – robertklep

+0

也許這就是策略,但在Windows中通常使用.cmd擴展名的地方肯定沒有遵循。 – Tallisfan

相關問題