2017-04-14 43 views
1

我使用的WebPack加載依賴一個錯誤。和依賴性的一個是這樣寫如下:的WebPack報告有關意外的字符「#」

#! /usr/bin/env node 

'use strict' 

var Parser = require('jsonparse') 
    , through = require('through') 

的WebPack給了我下面的錯誤:

ERROR in ./~/JSONStream/index.js 
Module parse failed: /Project/node_modules/JSONStream/index.js Unexpected character '#' (1:0) 
You may need an appropriate loader to handle this file type. 
| #! /usr/bin/env node 

看來,性格#不被認可的WebPack。有沒有一個加載器可以用來加載這種js文件?

+0

確保節點的二進制在你的環境中的路徑和刪除行'#!/usr/bin/env節點「並查看它是否有效。 –

+0

刪除該行工作正常,但它是第三方庫我無法更改其源代碼。 –

+0

您可以使用[家當裝載機(https://github.com/javascriptismagic/shebang-loader)。 –

回答

2

Shebang#!/usr/bin/env node表明,這是一個可執行的腳本,這不應該是在同一時間的模塊。庫文件和可執行文件應該是分開的,因爲CLI只是一種使用庫的方式,如果你自己使用庫,你當然不希望你的應用程序中包含CLI部分。

無論如何,仍有辦法解決。您可以使用webpack issue #2168中提到的shebang-loader。只需將其添加到您的.js規則中即可刪除該行。

+1

你能舉個例子嗎?有很多麻煩得到這個裝載機的工作和回購沒有任何示例,這是沒有用的,因爲行(var命令=要求(「shebang!../ bin/command」);)導致此錯誤錯誤:無法找到模塊'家當!../斌/命令'。 –

+0

這是在嘗試在./node_modules/fsevents/node_modules/rc/index.js中使用shebang-loader 錯誤時出現的錯誤。 模塊解析失敗:/ Users/joseph/Documents/WebDevWorkspace/mvp_frontend/node_modules/fsevents /node_modules/rc/index.js意外的字符「#」(1:0) 您可能需要適當的加載程序來處理此類文件。 | #!/usr/bin/env節點 | var cc = require('./ lib/utils') | var join = require('path')。join 它在一個node_modules文件夾中,所以我不想只是去刪除這行,任何幫助都會很棒,謝謝 –

+1

@ JMStudios.jrichardson既然webpack 2你不能省略'-loader'後綴,它會從字面上解析加載器。它會是'require(「shebang-loader!./ bin/command」)'或者你可以將它添加到你的webpack配置文件的'.js'規則中。 '{test:/\.js$/,use:['babel-loader','shebang-loader']}'。 –