3
我使用webpack與babel編譯我的ecmascript 6代碼。一切工作正常,但如果我添加某些依賴像請求npm包一樣。下面是我的文件:沒有窗口對象目前webpack nodejs
main.js
import os from 'os'
export class User {
constructor(username) {
this.username = username;
}
register() {
console.log("registering...");
}
}
var client = new User("hey")
console.log(user.register());
的WebPack配置:
var webpack = require('webpack')
module.exports = {
entry: [
'./src/main.js'
],
output: {
path: "dist",
publicPath: "/dist/",
filename: "stela.js"
},
watch: false,
module: {
loaders: [{
test: /\.js$/,
// excluding some local linked packages.
// for normal use cases only node_modules is needed.
exclude: /node_modules/,
loader: 'babel'
}, {
test: /\.json$/,
loader: 'json-loader'
}]
},
externals: {
fs: '{}',
tls: '{}',
net: '{}',
console: '{}'
},
babel: {
presets: ['es2015'],
plugins: ['transform-runtime']
},
resolve: {
modulesDirectories: ['node_modules']
}
}
現在,如果我跑webpack
,然後運行node dist/stella.js
一切正常,它記錄了registering...
;但是,如果我添加一定的依賴性,如requests
NPM包:
...
import request from 'request'
...
我跑webpack
一切編譯下來,沒有錯誤,但後來我嘗試運行node dist/stella.js
,我得到這個錯誤:
throw new Error('no window object present');
請注意'CommonsChunkPlugin'與'taget:'node''不兼容。如果你有它,那麼編譯節點時應該刪除它。 – Gherman