Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js split.EOL在Windows中提供不同的结果_Node.js_Reactjs_Webpack_Split_Eol - Fatal编程技术网

Node.js split.EOL在Windows中提供不同的结果

Node.js split.EOL在Windows中提供不同的结果,node.js,reactjs,webpack,split,eol,Node.js,Reactjs,Webpack,Split,Eol,我正在尝试将多行CSS值拆分并连接到一行中。例如,我们在CSS文件中有背景图像属性。有时,该特性值将具有多个线性渐变值。如下图所示: background-image: linear-gradient( right, #000 0%, #fff 20%, #ccc 40%, #ddd 60%, #fff 80%, #000 100% ) 在上面的示例中,背景图像值被分割为多行。所以,我想做的是在REACT中使用下面的JS将这些行连接成一行,以实现特定的目的。此代码在某些Windows计算机上运

我正在尝试将多行CSS值拆分并连接到一行中。例如,我们在CSS文件中有背景图像属性。有时,该特性值将具有多个线性渐变值。如下图所示:

background-image: linear-gradient(
right,
#000 0%,
#fff 20%,
#ccc 40%,
#ddd 60%,
#fff 80%,
#000 100%
)
在上面的示例中,背景图像值被分割为多行。所以,我想做的是在REACT中使用下面的JS将这些行连接成一行,以实现特定的目的。此代码在某些Windows计算机上运行良好:

const EOL = require('os');

console.log(getfile.split(EOL));
在上述JS中,getfile字符串包含多个CSS文件属性和值,并返回以下内容:

控制台日志会导致大多数Windows计算机:

[
'background-image: linear-gradient(',
'right,',
'#000 0%,',
'#fff 20%,',
'#ccc 40%,',
'#ddd 60%,',
'#fff 80%,',
'#000 100%',
')'
]
    [
    'background-image: linear-gradient(\n' +
    'right,\n' +
    '#000 0%,\n' +
    '#fff 20%,\n' +
    '#ccc 40%,\n' +
    '#ddd 60%,\n' +
    '#fff 80%,\n' +
    '#000 100%\n' +
    ')'
    ]
控制台日志导致一台Windows计算机:

[
'background-image: linear-gradient(',
'right,',
'#000 0%,',
'#fff 20%,',
'#ccc 40%,',
'#ddd 60%,',
'#fff 80%,',
'#000 100%',
')'
]
    [
    'background-image: linear-gradient(\n' +
    'right,\n' +
    '#000 0%,\n' +
    '#fff 20%,\n' +
    '#ccc 40%,\n' +
    '#ddd 60%,\n' +
    '#fff 80%,\n' +
    '#000 100%\n' +
    ')'
    ]
拆分(EOL)
适用于大多数Windows计算机。但是,它在其中一个上没有正常工作。您可以检查控制台结果。在每一行中添加一个\n文本,然后在特定版本的Windows中添加+(加号)符号,而不是,(逗号)。由于这个结果,它没有将多行代码合并到一行中

我不知道为什么它会出现在特定的Windows机器上


仅供参考:两个windows计算机节点版本均高于12

操作系统的值。EOL取决于平台:。因此,在您的情况下,您不应该依赖于
os.EOL
,而应该使用您正在处理的文件的实际行尾。现在是\n还是\n\r由编辑器决定。例如,VSCode同时支持\n和\n\r。CSS文件在不同机器上可能有不同的行尾的原因之一可能是Git中的autocrlf选项,如果您使用的是autocrlf选项的话。基本上,Git可以配置为在签出时将\n转换为\n\r。确认这是否正确,不要依赖于
os.EOL
,因为它只在当前平台上提供预期的行尾,而这不一定是给定文件所使用的。

考虑使用
getfile.split(/\r?\n/)。这将解析新行,而不考虑平台/操作系统