由于客户/同事希望我必须切换到npm。该项目是使用Vue CLI和Yarn作为默认程序包管理器创建的。
我首先认为没什么大不了,所以我删除了node_modules文件夹和yarn.lock文件。然后我先运行/*************************************************************************\
* Copyright (C) Michael Kerrisk, 2018. *
* *
* This program is free software. You may use, modify, and redistribute it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation, either version 3 or (at your option) any *
* later version. This program is distributed without any warranty. See *
* the file COPYING.gpl-v3 for details. *
\*************************************************************************/
/* strerror_tls.c
An implementation of strerror() that is made thread-safe through
the use of thread-local storage.
See also strerror_tsd.c.
Thread-local storage requires: Linux 2.6 or later, NPTL, and
gcc 3.3 or later.
*/
#define _GNU_SOURCE /* Get '_sys_nerr' and '_sys_errlist'
declarations from <stdio.h> */
#include <stdio.h>
#include <string.h> /* Get declaration of strerror() */
#include <pthread.h>
#include "tlpi_hdr.h"
#define MAX_ERROR_LEN 256 /* Maximum length of string in per-thread
buffer returned by strerror() */
/* ||||||||||||||||||
// vvvvvvvvvvvvvvvvvv
*/
static __thread char buf[MAX_ERROR_LEN];
/* Thread-local return buffer */
char *
strerror(int err)
{
if (err < 0 || err >= sys_nerr || sys_errlist[err] == NULL) {
snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", err);
} else {
strncpy(buf, sys_errlist[err], MAX_ERROR_LEN - 1);
buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */
}
return buf;
}
static void *
threadFunc(void *arg)
{
char *str;
printf("Other thread about to call strerror()\n");
str = strerror(EPERM);
printf("Other thread: str (%p) = %s\n", str, str);
return NULL;
}
int
main(int argc, char *argv[])
{
pthread_t t;
int s;
char *str;
str = strerror(EINVAL);
printf("Main thread has called strerror()\n");
s = pthread_create(&t, NULL, threadFunc, NULL);
if (s != 0)
errExitEN(s, "pthread_create");
s = pthread_join(t, NULL);
if (s != 0)
errExitEN(s, "pthread_join");
/* If strerror() is not thread-safe, then the output of this printf() be
the same as that produced by the analogous printf() in threadFunc() */
printf("Main thread: str (%p) = %s\n", str, str);
exit(EXIT_SUCCESS);
}
,然后运行npm install
。
它可以正常工作和编译,当我更改文件时可以重新编译,到目前为止一切都很好,但这是一个很奇怪的部分:所做的更改不会反映在浏览器中。我必须手动刷新页面。
我试图查看vue或webpack的配置文件。但是没有。没有Webpack配置,没有vue cli配置,没有构建文件夹。
我所拥有的是: -.eslintrc.js -.browserlistrc -babel.config.js -postcss.config.js
我不知道还要寻找什么?有人知道这可能是什么吗?
非常感谢, -J
答案 0 :(得分:0)
Vue CLI依赖于@vue/cli-service
,其行为与Facebook的Create React App(react-scripts
)完全一样。
如果您熟悉create-react-app,则@ vue / cli-service大概是 等效于react-scripts,尽管功能集是 不同。
所以他们两个都通过将所有捆绑配置(例如webpack.config.js
)隐藏在地毯下来为您“简化”项目的配置。在大多数情况下,这很方便,除非您决定做一些花哨的事情(例如开关包管理器)。在Create React App中,可以通过运行yarn eject
或npm run eject
来解决此问题,但是在Vue CLI平台上,您已被锁定。因此,没有简单的方法可以使所有基础配置文件显示和修复。其中的错误位。
要感到惊讶吗?..
答案 1 :(得分:0)
似乎值max_user_watches
在/proc/sys/fs/inotify/max_user_watches
中
正在影响webpack =>,从而干扰了热重载。
检查您的实际值
$cat /proc/sys/fs/inotify/max_user_watches
16384
以我的情况为16384,但这还不够。 因此,您也需要增加价值。
创建文件:
sudo nano /etc/sysctl.d/90-override.conf
并在其中填充:
fs.inotify.max_user_watches=200000
对于我来说,200000似乎足够了,如果需要,您可以拥有更高的价值。
创建文件并添加值后,只需重新启动PC即可。