如何在我的项目中从 npm 切换到 yarn?

Ric*_*her 1 maven node.js npm reactjs yarnpkg

我在尝试从项目中的 npm 切换到纱线时遇到问题。我尝试下载yarn,但仍然使用npm来启动我的项目。我需要切换,因为我正在处理的一个项目需要它是纱线,所以我可以添加一个 maven 前端插件来将我的后端和前端联系起来以进行部署。

在此处输入图片说明

1.
<frontend-maven-plugin.version>1.6</frontend-maven-plugin.version>
<node.version>v10.13.0</node.version>
<yarn.version>v1.12.1</yarn.version>

2.
<profiles>
    <profile>
        <id>demo</id>
        <build>
            <plugins>

                <plugin>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <version>${frontend-maven-plugin.version}</version>
                    <configuration>
                        <workingDirectory>src/js</workingDirectory>
                    </configuration>
                    <executions>
                        <execution>
                            <id>install node</id>
                            <goals>
                                <goal>install-node-and-yarn</goal>
                            </goals>
                            <configuration>
                                <nodeVersion>${node.version}</nodeVersion>
                                <yarnVersion>${yarn.version}</yarnVersion>
                            </configuration>
                        </execution>
                        <execution>
                            <id>yarn install</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <phase>generate-resources</phase>
                        </execution>
                        <execution>
                            <id>yarn test</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <phase>test</phase>
                            <configuration>
                                <arguments>test</arguments>
                                <environmentVariables>
                                    <CI>true</CI>
                                </environmentVariables>
                            </configuration>
                        </execution>
                        <execution>
                            <id>yarn build</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <phase>compile</phase>
                            <configuration>
                                <arguments>build</arguments>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>process-classes</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${basedir}/target/classes/static</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>src/js/build</directory>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

链接1 https://github.com/amigoscode/spring-boot-react-fullstack/blob/app-0/course-files/profiles.txt 链路2 https://github.com/eirslett/frontend-maven-plugin

Seb*_*ráč 43

完整简单的分步答案:

  1. 安装纱线npm i -g yarn
  2. 转到安装包的目录并运行yarn命令
  3. Yarn 将初始化并创建其yarn.lock文件,现在删除package-lock.json * Note
  4. 在您的package.json文件中替换"scripts"所有npm命令yarn ** Note
  5. 运行yarn dev或任何用于运行纱线脚本的命令=> 完成

* Note:重要的是你不要在yarn命令之前删除它(正如有些人建议的那样)它可能会破坏东西,例如你的yarn命令甚至无法工作并且会抛出错误:

Error: ENOENT: no such file or directory, open './package-lock.json'
Run Code Online (Sandbox Code Playgroud)

** Note:如果你用过

 "preinstall": "npx npm-force-resolutions",
Run Code Online (Sandbox Code Playgroud)

您可以将其删除,默认情况下纱线正在使用,"resolutions"无需用力:)


小智 5

只要您的计算机中安装了yarn,您无需执行任何操作即可从npm 切换到yarn。另外,要使用yarn安装软件包,您应该运行该命令,yarn而不是yarn install相当于npm install. 因为yarn并不是什么独立的库。Yarn 只是一个新的 CLI 客户端,它从 npm 注册表中获取模块。注册表本身不会改变 \xe2\x80\x94,您\xe2\x80\x99 仍然能够正常获取和发布包。

\n

有关纱线的更多信息,您应该阅读

\n


小智 5

这很简单;请按照以下说明操作:

  1. 验证它Yarn已全局安装在您的计算机上,否则使用npm install -g yarn它来安装它。
  2. 转到您的项目根目录并yarn在您的 CLI 上输入;Yarn可以使用与package.jsonnpm相同的格式,并且可以从 npm 注册表安装任何包。

有关更多详细信息,请查看官方纱线文档

  • 从 Yarn 1.7 开始,您还可以只使用“yarn import”,它将尝试复制 package-lock.json 中找到的相同依赖项。 (3认同)
  • 在这种情况下我可以删除 package-lock.json 文件吗? (2认同)