2

情况如下

我有一个.gitignore文件:

node_modules
npm-debug.log
/index.js # this is a build output, I don't want it in the repo

还有一个package.json文件(只是相关部分):

{
  "main": "index.js",
  "files": [
    "index.js", // however I want this in the npm package
    "readme.md",
    "package.json"
  ],
  "scripts": {
    "build": "rollup -c rollup.config.js", // this builds index.js ...
    "lint": "eslint **/*.js --config .eslintrc",
    "test": "jest --no-cache",
    "prepublish": "npm run lint && npm test && npm run build" // ...before publishing
  }
}

当我发布这个的第一个版本时,index.js被省略了,只有readme.md并且package.json被正确地发布了。我唯一能假设的是.gitignore导致这种情况,因为根据文档,如果后者不存在(或者可能两者一起使用,不知道),则.gitignore替换。.npmignore

那么有没有办法在 git repo 中不包含该文件,但在 npm 包中包含它?

4

1 回答 1

4

设法通过添加一个.npmignore文件来解决这个问题:

# all the crap that's not neccessary for the npm module to work
node_modules
src
test
.babelrc
.eslintignore
.eslintrc
.gitignore
.npmignore
.travis.yml
rollup.config.js

filespackage.json.

于 2017-04-06T18:18:26.580 回答