我还在学习Node JS和javascript并有一个应用程序.我有一个配置文件,我需要在Ubuntu 12.04上获取服务器的主机名
我尝试过类似的东西:
window.location.hostname
Run Code Online (Sandbox Code Playgroud)
但那没用.示例代码如下:
exports.config = {
app_name : [ window.location.hostname ]
}
Run Code Online (Sandbox Code Playgroud)
如果我使用一个字符串,它将加载正常,但这将通过Github进行管理,并且需要在应用程序加载时进行区分.
根据Webpack 4文档,如果我指定libraryTarget:'umd',它应该产生以下输出:
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["MyLibrary"] = factory();
else
root["MyLibrary"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return _entry_return_;
});
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是:
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd) …Run Code Online (Sandbox Code Playgroud) 我有以下脚本:
/* script.js */
var bar = "bar1";
function foo() {
console.log('this.bar: ' + this.bar);
console.log('global.bar: ' + global.bar);
}
foo();
Run Code Online (Sandbox Code Playgroud)
运行node script.js回报:
this.bar: undefined
global.bar: undefined
Run Code Online (Sandbox Code Playgroud)
但是,从节点命令行环境内部,再现相同的脚本将返回:
this.bar: bar1
global.bar: bar1
Run Code Online (Sandbox Code Playgroud)
另外,如果我改变从我的变量声明var bar = "bar1";来global.bar = "bar1";运行上面的代码返回的两种方法:
this.bar: bar1
global.bar: bar1
Run Code Online (Sandbox Code Playgroud)
有什么不同?运行脚本与在同一环境中重现脚本时,全局变量赋值是否有所不同?
构建服务器端react应用程序,并且在使用Webpack时,Style-Loader出现问题。
我正在使用版本“ ^ 0.23.1”,并且在运行脚本进行捆绑和构建时,Style-Loader出现了问题。
问题是 window is not defined
webpack:///./node_modules/style-loader/lib/addStyles.js?:23
return window && document && document.all && !window.atob;
Run Code Online (Sandbox Code Playgroud)
有没有人遇到这个问题?在查看了有关样式加载程序的Stack和Github问题之后,我没有找到任何解决方案。
这是我的webpack文件:
const path = require('path');
const webpack = require('webpack');
module.exports = {
// webpack to use node
target: 'node',
entry: './src/index.js',
output: {
filename: 'client-build.js',
path: path.resolve(__dirname, 'build/public'),
publicPath: '/build/public'
},
module: {
rules: [
{
test: /\.js$|\.jsx$/,
loader: 'babel-loader',
exclude: '/node_modules/',
options: {
presets: [
'@babel/preset-react'
]
}
},
{
test: /\.(s*)css$/,
loader: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /\.jpeg$|\.gif$|\.png$|\.svg$|\.woff$|\.ttf$|\.wav$|\.mp3$|\.jpg$|\.pdf$/, …Run Code Online (Sandbox Code Playgroud) 我正在使用0.3.1-pre Node.js
这样做:
typeof global.parseInt
Run Code Online (Sandbox Code Playgroud)
结果是
'undefined'
Run Code Online (Sandbox Code Playgroud)
但是在输入"global"后在控制台中按[Tab]时.给出一个函数列表,包括parseInt.
那么parseInt是否是全局命名空间的成员?
与nodejs中的window [my_func_name]相同的是什么?我正在从stdin读取一个字符串,如果它是一个函数名,我想执行它.我认为全局[my_func_name]可能有效,但不幸的是它没有.
给出以下代码:
const theArray = ['Audi','Volvo','Mercedes'];
const myObj = {a: 7};
theArray.forEach((value, index, array) => {
console.log(index + ' : ' + value);
console.log(array === theArray);
console.log(this.a);
}, myObj);
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
0 : Audi
true
undefined
1 : Volvo
true
undefined
2 : Mercedes
true
undefined
Run Code Online (Sandbox Code Playgroud)
我不明白为什么this不引用myObj并返回undefined而不是7.虽然this typeof Object返回true,但我不知道它引用了哪个Object.我只知道this返回一个空对象(即{})
Node.js解释器版本是v6.2.1
V8-Engine版本为5.0.71.52