npm
在當前目錄中查找node_modules
,然後查找其所有父目錄,然後查找全局位置。我現在提出的目錄結構爲:告訴npm在不同目錄中查找node_modules
- 全球
- 的package.json
- node_modules/
- 項目1
- gulpfile.coffee
- 項目 - 2
- gulpfile.coffee
但是,這不是在那裏npm
通常查找此。有沒有可以設置的環境變量來處理這個問題,或者我可以告訴它看起來在特定的目錄中?謝謝!
npm
在當前目錄中查找node_modules
,然後查找其所有父目錄,然後查找全局位置。我現在提出的目錄結構爲:告訴npm在不同目錄中查找node_modules
但是,這不是在那裏npm
通常查找此。有沒有可以設置的環境變量來處理這個問題,或者我可以告訴它看起來在特定的目錄中?謝謝!
請嘗試以下操作在gulp中設置NODE_PATH。
.pipe(preprocess({context: { NODE_PATH: '$NODE_PATH:/path/to/other/dir'}}))
完整的示例如下所示。
var preprocess = require('gulp-preprocess');
gulp.task('html', function() {
gulp.src('./app/*.html')
.pipe(preprocess({context: { NODE_PATH: '$NODE_PATH:/path/to/other/dir'}})) //To set environment variables in-line
.pipe(gulp.dest('./dist/'))
});
上述2個示例添加到節點路徑中(如果已設置)。如果您想設置它,請執行以下操作。
.pipe(preprocess({context: { NODE_PATH: '/path/to/other/dir'}}))
謝謝傑夫!有沒有辦法做到這一點,而不必在每個吞嚥任務內使用預處理?我遇到的問題是從'project-1'運行'gulp'時,它沒有找到吞噬的路徑,所以它仍然出錯。 – Zach 2015-03-18 22:40:56
我不這麼認爲......你的意思是沒有發現「吞噬」? – 2015-03-19 12:29:19
如果我嘗試在一個gulp任務中設置'NODE_PATH',NPM仍然不會知道'gulp'是什麼,因爲存儲的gulp位於NPM尋找'node_modules'的正常範圍之外,因此推理試圖在gulp甚至運行之前將其初始設置爲依賴文件。 – Zach 2015-03-19 13:49:59
爲什麼你不把你的項目移動到'global'子文件夾? – elmigranto 2015-03-18 21:05:42
爲了進一步解釋,這裏面是一個WordPress項目,所以我使用典型的「主題/項目-1」,「主題/項目-2」方法加載這些內容,並希望保留所有依賴項(我也會把這些組件放進去)放在一箇中心位置。 – Zach 2015-03-18 21:09:30