Я пытаюсь следовать статье Джеймса Лонга, чтобы получить код узла узла в комплекте с веб-пакетом. Моя конфигурация ниже. Я могу упаковать вещи без проблем, но я не могу понять, как это сделать. Для теста я создал простой server.ts, который просто имеет console.log('test');
, Webpack с готовностью компилирует его на это;
exports.ids = [0,1];
exports.modules = [
/* 0 */
/***/ function(module, exports) {
console.log('test');
/***/ }
];;
Проблема в том, что node server.bundle.js ничего не делает - это имеет смысл, так как я теперь экспортирую функцию, которая никогда не вызывалась. Я должен упустить что-то очевидное, но через два часа, глядя на него, я певу. любой совет?
{
target: 'node',
entry: {
'server': Path.join(__dirname, 'server', 'server.ts')
},
output: {
path: Path.join(__dirname, 'dist'),
filename: '[name].bundle.js'
},
resolve: {
extensions: ['', '.js', '.json', '.ts']
},
devtool: 'source-map',
module: {
preLoaders: [
{test: /\.ts$/, loader: "tslint"}
],
loaders: [
{test: /\.js$/, loader: 'script'},
{
test: /\.ts$/,
loader: 'ts-loader',
query: {
configFileName: 'server/tsconfig.json',
ignoreDiagnostics: [
2403, // 2403 -> Subsequent variable declarations
2300, // 2300 -> Duplicate identifier
2374, // 2374 -> Duplicate number index signature
2375 // 2375 -> Duplicate string index signature
]
}
},
{test: /\.json$/, loader: 'raw'}
]
},
plugins: [
new Webpack.optimize.CommonsChunkPlugin('common', 'common.bundle.js')
]
}
Оказывается, это была проблема;
plugins: [
new Webpack.optimize.CommonsChunkPlugin('common', 'common.bundle.js')
]
Для тех, кто наткнулся на это, для кода backend, не оптимизируйте общий, он имеет код загрузчика и не будет работать.
Не используйте webpack в качестве компилятора для кода backend/nodejs. Это не его предполагаемое использование. Просто запустите tsc -w
чтобы получить JS, или если вы чувствуете себя напуганным (не хотите, чтобы ресурсы js лежали вокруг), дайте ts-node
a go: https://github.com/TypeStrong/ts-node