2016-11-30 54 views
1

我正在测试npm脚本来构建我的项目依赖项。预发布不按预期工作

我的想法来自https://github.com/ParsePlatform/parse-server,让我印象深刻的是代码库中的代码不代表npm install之后的node_modules代码。

下面是我testmodule结构

src/index.js 
package.json 

,这是我的package.json内容

{ 
    "name": "testmodule", 
    "version": "1.0.0", 
    "description": "", 
    "main": "lib/index.js", 
    "scripts": { 
    "build": "babel src/ -d lib/", 
    "prepublish": "npm run build" 
    }, 
    "devDependencies": { 
    "babel-cli": "^6.18.0", 
    "babel-core": "^6.18.2" 
    } 
} 

,这是结构运行后我希望npm install testmodule

node_modules/testmodule/lib/index.js 
node_modules/testmodule/package.json 

这是SRC文件夹不应该在这里。

但是在我运行npm install后,它与我推送到我的git存储库时完全一样。

请注意,我在我自己的服务器中使用了GitLab

所以我的问题是:

  1. 有什么,我缺少做prepublish运行?

  2. 分析服务器代码的哪一部分在安装后会使src文件夹和其他文件不存在?

回答

0

你好吗npm install

根据documentation on npm scripts,预发布脚本在发布包之前运行(也可以在没有任何参数的情况下在本地npm安装上运行)。似乎很清楚,预发布脚本仅在npm publishnpm install <local directory>上运行。

如果您尝试通过URL直接从您的本地gitlab服务器安装,则将而不是工作 - 脚本将不会运行。解决方案是在本地安装,除非你愿意开源你的软件包&将其推送到npm存储库或支付私人npm存储库。这是我在开发包之前已经完成的工作,然后才准备公布。

+0

获取预发布。谢谢。但介意解释如何解析服务器在发布过程中删除src,资源文件夹和其他文件? – Simon

+0

FWIW,我对parse-server一无所知,但它看起来像是从npm存储库安装的。因此,在某些时候,开发人员做了一个'npm publish'并将代码推送到npm存储库。这就是分析服务器预发布脚本运行的时间。 – Kryten