情况如下
我有.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
如果后者不存在(或者2可能一起使用,不知道)
那么有没有办法在git repo中没有该文件,但是在npm包中有它?
答案 0 :(得分:1)
通过添加.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
完全从files
删除package.json
属性。