Là pack.json được cho là chỉnh sửa thủ công? Không thể một chương trình như npm chỉ xem qua các tệp, xem các câu lệnh "yêu cầu" và sau đó sử dụng nó để đặt các mục cần thiết trong tệp pack.json? Có chương trình nào như vậy không?
Là pack.json được cho là chỉnh sửa thủ công? Không thể một chương trình như npm chỉ xem qua các tệp, xem các câu lệnh "yêu cầu" và sau đó sử dụng nó để đặt các mục cần thiết trong tệp pack.json? Có chương trình nào như vậy không?
Câu trả lời:
Tệp pack.json được npm sử dụng để tìm hiểu về dự án node.js của bạn.
Sử dụng npm init
để tạo tệp pack.json cho bạn!
Nó đi kèm với npm. Đọc tài liệu của nó ở đây: https://docs.npmjs.com/cli/init
Ngoài ra, có một công cụ chính thức mà bạn có thể sử dụng để tạo tệp này theo chương trình: https://github.com/npm/init-package-json
npm init
chỉ là những gì tôi đang tìm kiếm! Ngoài ra sau đó tôi thường chạy npm shrinkwrap
để tạo một npm-shrinkwrap.json
tệp
npm init
: Sử dụng npm install <pkg> --save
sau đó để cài đặt một gói và lưu nó dưới dạng phụ thuộc trong tệp pack.json.
npm init
trong Bảng điều khiển quản lý gói từ Visual Studio 2015, nó chỉ hiển thị [...] Press ^C at any time to quit.
và dừng lại mà không hỏi bất cứ điều gì hoặc tạo tệp json. Tui bỏ lỡ điều gì vậy?
npm init --force --yes
là lớp lót để tạo tệp này
Trước hết, chạy
npm init
... sẽ hỏi bạn một vài câu hỏi ( đọc cái này trước ) về dự án / gói của bạn và sau đó tạo tệp pack.json cho bạn.
Sau đó, khi bạn có tệp pack.json, hãy sử dụng
npm install <pkg> --save
hoặc là
npm install <pkg> --save-dev
... để cài đặt một sự phụ thuộc và tự động thêm nó vào của bạn package.json
'sdependencies
danh sách.
(Lưu ý: Bạn có thể cần phải điều chỉnh thủ công các phạm vi phiên bản cho các phụ thuộc của mình.)
package.json
, nó thường được xử lý tự động.
--save
không còn cần thiết trong các phiên bản npm mới hơn
Tôi chỉ viết một tập lệnh đơn giản để thu thập các phụ thuộc trong ./node_modules. Nó đáp ứng yêu cầu của tôi tại thời điểm này. Điều này có thể giúp một số người khác, tôi gửi nó ở đây.
var fs = require("fs");
function main() {
fs.readdir("./node_modules", function (err, dirs) {
if (err) {
console.log(err);
return;
}
dirs.forEach(function(dir){
if (dir.indexOf(".") !== 0) {
var packageJsonFile = "./node_modules/" + dir + "/package.json";
if (fs.existsSync(packageJsonFile)) {
fs.readFile(packageJsonFile, function (err, data) {
if (err) {
console.log(err);
}
else {
var json = JSON.parse(data);
console.log('"'+json.name+'": "' + json.version + '",');
}
});
}
}
});
});
}
main();
Trong trường hợp của tôi, tập lệnh trên xuất ra:
"colors": "0.6.0-1",
"commander": "1.0.5",
"htmlparser": "1.7.6",
"optimist": "0.3.5",
"progress": "0.1.0",
"request": "2.11.4",
"soupselect": "0.2.0", // Remember: remove the comma character in the last line.
Bây giờ, bạn có thể sao chép và dán chúng. Chúc vui vẻ!
npm ls --depth=0
sẽ in ít nhiều giống nhau (không chắc là trường hợp đó vào năm 2012)
a
, và gói a
cần gói b
và c
, kịch bản này sẽ ra tất cả các cấp, vì vậy a
, b
, c
đó là không chính xác. Nó chỉ nên xuất ra a
, các gói phụ sẽ được tự động giải quyết.
npm init
để tạo tệp pack.json và sau đó bạn sử dụng
ls node_modules/ | xargs npm install --save
để điền vào các mô-đun bạn có trong thư mục node_modules.
Chỉnh sửa: @paldepind chỉ ra rằng lệnh thứ hai là dư thừa vì npm init
bây giờ sẽ tự động thêm những gì bạn có trong thư mục node_modules / của bạn. Tôi không biết nếu điều này luôn luôn như vậy, nhưng ít nhất bây giờ, nó hoạt động mà không có lệnh thứ hai.
npm init
đã tự động thêm các phụ thuộc dựa trên các gói đã cài đặt và không cần phải chạy lệnh thứ hai.
npm dedupe
, giúp kéo các phụ thuộc được chia sẻ giữa các mô-đun của bạn ra khỏi các mô-đun đó và lưu trữ chúng ở cấp cao nhất của node_modules
thư mục của bạn . Nhưng nó không chạm vào package.json
! Với điều này, bạn có thể cam kết và chia sẻ thiết lập trùng lặp của mình.
Dòng lệnh :
npm init
sẽ tạo tập tin pack.json
Để cài đặt, cập nhật và gỡ cài đặt các gói theo phụ thuộc vào tệp pack.json:
Dòng lệnh :
npm install <pkg>@* --save
sẽ tự động thêm phiên bản mới nhất cho gói theo phụ thuộc vào tệp pack.json
VÍ DỤ:
npm install node-markdown@* --save
Dòng lệnh :
npm install <pkg> --save
cũng sẽ tự động thêm phiên bản mới nhất cho gói theo phụ thuộc vào tệp pack.json
nếu bạn cần phiên bản cụ thể cho gói, hãy sử dụng dòng lệnh này :
npm install <pkg>@<version> --save
sẽ tự động thêm phiên bản cụ thể của gói theo phụ thuộc vào tệp pack.json
VÍ DỤ:
npm install koa-views@1.0.0 --save
nếu bạn cần phạm vi phiên bản cụ thể cho gói, hãy sử dụng dòng lệnh này :
npm install <pkg>@<version range>
sẽ tự động thêm phiên bản mới nhất cho gói giữa phạm vi phiên bản theo phụ thuộc vào tệp pack.json
VÍ DỤ:
npm install koa-views@">1.0.0 <1.2.0" --save
Để biết thêm chi tiết về cách viết phiên bản cho gói npm Doc
Dòng lệnh :
npm update --save
sẽ cập nhật các gói thành tệp pack.json và sẽ tự động thêm phiên bản cập nhật cho tất cả các gói theo phụ thuộc vào tệp pack.json
Dòng lệnh :
npm uninstall <pkg> --save
sẽ tự động xóa gói khỏi phụ thuộc vào tệp pack.json và xóa gói khỏi thư mục node_module
Chạy npm init -y
làm cho bạn package.json
với tất cả các mặc định.
Sau đó, bạn có thể thay đổi package.json
tương ứng
Điều này giúp tiết kiệm thời gian nhiều lần bằng cách ngăn nhấn enter
vào mọi lệnh trongnpm init
Bây giờ bạn có thể sử dụng Yeoman - Công cụ giàn giáo ứng dụng web hiện đại trên thiết bị đầu cuối nút bằng 3 bước đơn giản.
Trước tiên, bạn sẽ cần cài đặt yo và các công cụ cần thiết khác:
$ npm install -g yo bower grunt-cli gulp
Để tạo ra một ứng dụng web, hãy cài đặt trình tạo trình tạo webapp :
$ npm install -g generator-webapp // create scaffolding
Chạy yo và ... bạn đã hoàn tất:
$ yo webapp // create scaffolding
Yeoman có thể viết mã soạn sẵn cho toàn bộ ứng dụng web hoặc Bộ điều khiển và Mô hình. Nó có thể kích hoạt một máy chủ web xem trước trực tiếp để chỉnh sửa và biên dịch; không chỉ là bạn cũng có thể chạy thử nghiệm đơn vị của mình, thu nhỏ và ghép mã của bạn, tối ưu hóa hình ảnh và hơn thế nữa ...
Yeoman (yo) - công cụ giàn giáo cung cấp một hệ sinh thái của giàn giáo cụ thể theo khung, được gọi là máy phát điện, có thể được sử dụng để thực hiện một số nhiệm vụ tẻ nhạt được đề cập trước đó.
Grunt / gulp - được sử dụng để xây dựng, xem trước và kiểm tra dự án của bạn.
Bower - được sử dụng để quản lý phụ thuộc, do đó bạn không còn phải tải xuống thủ công các thư viện của mình.
Dựa trên câu trả lời của Pylinux, dưới đây là giải pháp cho HĐH Windows,
dir node_modules > abc.txt
FOR /F %k in (abc.txt) DO npm install --save
Hy vọng nó giúp.
sử dụng lệnh npm init -f để tạo tệp pack.json và sau đó sử dụng --save sau mỗi lệnh để mỗi mô-đun sẽ tự động được cập nhật bên trong gói.json của bạn cho ex: npm install express --save
Nếu bạn git và người dùng GitHub:
generate-package
đơn giản hơn, hơn npm init
.
khác
và / hoặc bạn không thích package.json
mẫu, gói npm init
tạo hoặc tạo:
bạn có thể tạo mẫu của riêng mình thông qua các ứng dụng giàn giáo như tạo , buồm hoặc yeoman .
Câu trả lời này có liên quan đến tháng 3 năm 2018. Trong tương lai, dữ liệu từ câu trả lời này có thể bị lỗi thời.
Tác giả của câu trả lời này đã sử dụng gói tạo cá nhân vào tháng 3 năm 2018.
Bạn cần sử dụng git và GitHub để sử dụng gói tạo.
Ví dụ, tôi tạo thư mục trống sasha-npm-init-vs-generate-package
.
Chỉ huy:
D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package>gen package
[16:58:52] starting generate
[16:59:01] √ running tasks: [ 'package' ]
[16:59:04] starting package
? Project description? generate-package demo
? Author's name? Sasha Chernykh
? Author's URL? https://vk.com/hair_in_the_wind
[17:00:19] finished package √ 1m
package.json
:
{
"name": "sasha-npm-init-vs-generate-package",
"description": "generate-package demo",
"version": "0.1.0",
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package",
"author": "Sasha Chernykh (https://vk.com/hair_in_the_wind)",
"repository": "Kristinita/sasha-npm-init-vs-generate-package",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"license": "MIT",
"engines": {
"node": ">=4"
},
"scripts": {
"test": "mocha"
},
"keywords": [
"generate",
"init",
"npm",
"package",
"sasha",
"vs"
]
}
D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (sasha-npm-init-vs-generate-package)
version: (1.0.0) 0.1.0
description: npm init demo
entry point: (index.js)
test command: mocha
git repository: https://github.com/Kristinita/sasha-npm-init-vs-generate-package
keywords: generate, package, npm, package, sasha, vs
author: Sasha Chernykh
license: (ISC) MIT
About to write to D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package\package.json:
{
"name": "sasha-npm-init-vs-generate-package",
"version": "0.1.0",
"description": "npm init demo",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git"
},
"keywords": [
"generate",
"package",
"npm",
"package",
"sasha",
"vs"
],
"author": "Sasha Chernykh",
"license": "MIT",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme"
}
Is this ok? (yes) y
{
"name": "sasha-npm-init-vs-generate-package",
"version": "0.1.0",
"description": "npm init demo",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git"
},
"keywords": [
"generate",
"package",
"npm",
"package",
"sasha",
"vs"
],
"author": "Sasha Chernykh",
"license": "MIT",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme"
}
Tôi nghĩ rằng, generate-package
đơn giản hơn, đó npm init
.
Điều đó tạo ra package.json
mẫu của riêng bạn, xem các ví dụ tạo và yeoman .
npm link