首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Netlify中的父目录运行嵌套的npm脚本?

从Netlify中的父目录运行嵌套的npm脚本?
EN

Stack Overflow用户
提问于 2018-03-01 10:47:34
回答 1查看 1.7K关注 0票数 1

我正在尝试在Netlify上设置持续部署。我已经链接了我的Github帐户,所以我现在需要设置我的build命令:

复杂之处在于,我的带有build命令的package.json (来自create-react-app)不在项目根目录中。取而代之的是它的1个文件夹,比如:

代码语言:javascript
复制
react         // this is a folder
-package.json // has build commands for React
server        // this is a folder
-package.json // has build commands for my backend as a service 

因为我使用后端作为服务,所以我不需要部署到Netlify的'server‘文件夹中的任何内容,只需要'react’文件夹的内容。

我可以从项目根目录运行react/package.json中的命令吗?

在我的本地机器上,我可以使用以下命令从根目录运行build命令:

代码语言:javascript
复制
{
    "scripts": {
        "netlify": "cd ./react && npm run build"
    }
}

但在Netlify it上有以下错误:

代码语言:javascript
复制
9:56:31 AM: Executing user command: npm run netlify
9:56:31 AM: > @ netlify /opt/build/repo
9:56:31 AM: > cd ./react && npm run build
9:56:32 AM: > testproject@0.0.1 build /opt/build/repo/react
9:56:32 AM: > npm-run-all build-css build-js
9:56:32 AM: sh: 1: npm-run-all: not found
9:56:32 AM: npm ERR! file sh
9:56:32 AM: npm ERR! code ELIFECYCLE
9:56:32 AM: npm ERR! errno ENOENT
9:56:32 AM: npm ERR! syscall spawn
9:56:32 AM: npm ERR! testproject@0.0.1 build: `npm-run-all build-css build-js`
9:56:32 AM: npm ERR! spawn ENOENT
9:56:32 AM: npm ERR!
9:56:32 AM: npm ERR! Failed at the testproject@0.0.1 build script.
9:56:32 AM: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
9:56:32 AM: npm WARN Local package.json exists, but node_modules missing, did you mean to install?
9:56:32 AM: npm ERR! A complete log of this run can be found in:
9:56:32 AM: npm ERR!     /opt/buildhome/.npm/_logs/2018-03-01T02_56_32_022Z-debug.log
9:56:32 AM: npm ERR! code ELIFECYCLE
9:56:32 AM: npm ERR! errno 1
9:56:32 AM: npm ERR! @ netlify: `cd ./react && npm run build`
9:56:32 AM: npm ERR! Exit status 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-02 03:01:19

免责声明:我为Netlify工作

如果有/package.json,我们的构建过程只会为你安装npm。我认为您可以使用以下build命令获得成功的构建:

cd ./react && npm install && npm run build

无论如何,你在package.json中都有npm-run-all :)

然而,这并不是解决问题的最佳方法。最佳实践是使用netlify.toml file为您的构建设置base。在开始构建之前,我们会cd到这个目录,然后我们只需要拿起你的package.json并自动进行安装,这样你的构建命令就会简化为npm run build,并且任何其他克隆你的存储库的人也会被设置为在Netlify上成功:)

[build] base = "react"

...is该文件中所需的所有内容。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49041850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档