# package.json 需要了解的事 [package.json中你需要了解的都在這](https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/666620/#outline__2_7) ## license 需要為我們的開源項目指定使用許可證,這樣可以告訴使用者要以什麼樣的知識使用它。 :::success **開源協議** * 首先是對**作者**的保護,防止知識成果被惡意利用。咖。開源協議中一般都包含免責聲明(禁止代碼的協作者承擔代碼被使用者產生的風險及後果) * 其次是對**使用者**的保護,方便使用者看就知道自己允許進行哪些操作,不允許哪些操作。未添加協議的代碼默認是作者保留所有權利的,就會像是一顆定時炸彈,如果在這項目中使用了這份沒有協議的代碼,原作者只要能證明你未經許可使用他的代碼,是能夠起訴你的。 ::: 對於許可證的相關知識:[作为前端,你需要了解的开源协议知识 ](https://zhuanlan.zhihu.com/p/35876146) ## files * 內容是模塊下的資料夾和資料夾名,這些被列舉的文建會被包含在npm模組中。 * 可以使用 .npmignore 文件進行文件排除,這個配置的優先級大於 files 屬性的值。 * .npmignore 會存在於項目的根目錄中。 * 以下的內容會被自動永久默認的包含在files中: ◦ package.json ◦ README ◦ CHANGES / CHANGELOG / HISTORY ◦ LICENSE / LICENCE ◦ NOTICE ◦ main 屬性中的文件 * 某些文件會被NPM自動忽略: ◦ .git ◦ CVS ◦ .svn ◦ .hg ◦ .lock-wscript ◦ .wafpickle-N ◦ ..swp ◦ .DS_Store ◦ ._ ◦ npm-debug.log ◦ .npmrc ◦ node_modules ◦ config.gypi ◦ *.orig ◦ package-lock.json (use shrinkwrap instead) ## main * main的內容是這塊模組的主入口文件相對於package.json的文件路徑。 * 當其他項目使用import/require等進行引入的時候,其實就是引用main的文件的export內容。 ## repository repository指定代碼的提交目錄,對想提PR的人有幫助。 ## script 用來編寫模組中使用的腳本 ```javascript= "scripts": { "start": "webpack serve --mode development --env development --hot --port 3000", "build": "webpack --mode production", "test": "echo \"Error: no test specified\" && exit 1" }, ``` ## dependencies與devDependencies 1.dependencies : 使用在**已經發布**的環境下,換句話說,是指發布後仍然需要依賴使用的 plug-in。 2.devDependencies : 使用在**開發中**的環境下,意思是指——只單純會在開發時應用到的 plug-in。 一開始在使用 npm 管理安裝套件時,一定會對於這兩者很困惑: > $ npm install packagename --save; > $ npm install packagename --save-dev 可以看到分別有 dependencies 與 devDependencies 兩個節點,分別有裝入不同的套件。 –save 與 –save-dev 的兩個安裝指令 * 前者分別是指到 dependencies 與 devDependencies 下。 * 後者則是只有寫入 devDependencies 下。所以執行 npm install 時,可以根據需求,使用不同的指令安裝。 [弄懂 npm install 的 –save 與 –save-dev](https://chriskang028.wordpress.com/2017/07/05/%E5%BC%84%E6%87%82-npm-install-%E7%9A%84-dependencies-v-s-devdependencies/#:~:text=devDependencies%20%3A%20%E4%BD%BF%E7%94%A8%E5%9C%A8%E9%96%8B%E7%99%BC%E4%B8%AD,%E5%88%B0gulp%2Dstylus%20%E9%80%99%E5%80%8B%E5%A5%97%E4%BB%B6%E3%80%82)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up