Javascript 没有窗口对象存在网页包节点
我正在使用babel的webpack来编译我的ecmascript 6代码。一切正常,但如果我添加某些依赖项,如请求npm包。这是我的档案: main.jsJavascript 没有窗口对象存在网页包节点,javascript,node.js,webpack,Javascript,Node.js,Webpack,我正在使用babel的webpack来编译我的ecmascript 6代码。一切正常,但如果我添加某些依赖项,如请求npm包。这是我的档案: main.js import os from 'os' export class User { constructor(username) { this.username = username; } register() { console.log("registering..."); } } var client
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());
网页包配置:
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
一切正常,它将注销注册…
;但是,如果我添加某些依赖项,如请求
npm包:
...
import request from 'request'
...
我运行webpack
所有的东西都编译好了,没有任何错误,但是我尝试运行node dist/stella.js
,我得到了以下错误:
throw new Error('no window object present');
默认情况下,Webpack设置为针对浏览器,而不是节点环境。尝试在配置中设置
target
:
module.exports = {
// ...
target: "node",
// ...
}
请注意,
commonchunkplugin
与taget:'node'
不兼容。如果有,则在为节点编译时应将其删除。