我目前被困在一個地方,我需要在HTTPS模式下啓動一個NodeJS服務器,並且需要讀取證書文件以便將它們作爲https.createServer(options, app).listen(8443)
命令。我很難理解如何將文件讀取到使用Webpack 2捆綁的TypeScript文件中。 例如,如何使用Webpack 2 Raw-Loader來讀取文件
我有2個文件file.crt和file.key。我想在創建https服務器並開始監聽給定端口時讀取這些文件。在常規的TS/JS的土地,我可以這樣做:
```
import Config from '../env/config';
import Express from '../lib/express';
import * as https from 'https';
import * as fs from 'fs';
let config = new Config();
let app = Express.bootstrap().app;
export default class AppService{
constructor(){
// console.log('blah:', fs.readFileSync('./file.txt'));
}
start(){
let options = {
key: fs.readFileSync('file.key'),
cert: fs.readFileSync('file.crt'),
ca: fs.readFileSync('ca.crt'),
passphrase: 'gulp'
};
https.createServer(options, app).listen(config.port,()=>{
console.log('listening on port::', config.port);
});
}
}
然而,當的WebPack 2建立這些文件的arent被帶到束中的,所以當節點啓動它不能找到它們。好吧,我明白了,但我讀過那個原始裝載機將爲此工作,所以我想我會試一試。
這裏是我的WebPack配置文件:
// `CheckerPlugin` is optional. Use it if you want async error reporting.
// We need this plugin to detect a `--watch` mode. It may be removed later
// after https://github.com/webpack/webpack/issues/3460 will be resolved.
const {CheckerPlugin} = require('awesome-typescript-loader');
const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin');
module.exports = {
target: 'node',
entry: './src/server.ts',
output: {
filename: 'dist/bundle.js'
},
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx']
},
devtool: 'source-map',
module: {
rules: [
{test: /\.ts$/, use: 'awesome-typescript-loader'},
{test: /\.json$/, loader: 'json-loader'},
{test: /\.crt$/, use: 'raw-loader'}
]
},
plugins: [
new CheckerPlugin()
],
node: {
global: true,
crypto: 'empty',
fs: 'empty',
net: 'empty',
process: true,
module: false,
clearImmediate: false,
setImmediate: false
}
};
對此,我認爲,是指確定掃描項目,當你發現有任何.crt的文件,然後捆綁起來與源地圖作爲utf8字符串。我所要做的就是這個import crtfile from 'file.crt'
就像raw-loader文檔狀態一樣,但是typescript甚至不能編譯文件,現在說它不能寫入模塊file.crt。請幫助!!我打了一堵牆。
你在哪兒放這個custom.d.ts文件。在根?或其他目錄在整個項目中共享?此外,我的'tsconfig.json'或webpack配置必須改變,以適應這個文件 – britztopher
項目的根本應該沒問題。 –
感謝一堆是這個問題。 – britztopher