标签: package.json

更改npm脚本的工作目录

问:是否可以更改npm运行脚本的上下文?

我想要的是以下内容:

"scripts": {
   "test": "gulp mocha",
   "pre-install": "./deps/2.7/cpython/configure --prefix=$(pwd)/build --exec-prefix=$(pwd)/build && make -C deps/2.7/cpython && make -C deps/2.7/cpython install",
   "install": "node-gyp rebuild"
},
Run Code Online (Sandbox Code Playgroud)

显然cd deps/2.7/cpython/ && ./configure可以在类UNIX系统上工作,但不能在Windows上工作.

原因:问题的根源是,configurepython repo 的命令将文件输出到调用它的目录中.然而,这些文件与repo的目录中的文件相关make并且make install查找这些文件.

在这种情况下,我无法改变,Makefile因为Python的构建过程是可以理解的复杂.

替代方案:替代方案可能是编写一些install.js并使用节点的OS独立API和一些child_process.exec(),我可能会这样做.但是,不离开npm会非常好.

makefile node.js npm package.json

70
推荐指数
2
解决办法
4万
查看次数

如果我的代码仅供我工作的公司使用,我应该在package.json的许可证字段中放入什么?

NPM 2.11.3

我正在Node中构建一个库.该库仅供我目前工作的公司使用.我认为这意味着许可证是"无".但是当我npm init希望我使用SPDX许可证时."无"或"未许可"不是有效选项.

npm WARN package.json data_monitoring_api@0.1.0 license should be a valid SPDX license expression

在NPM GitHub问题跟踪器上有一些关于此的讨论,但我找不到任何明确回答这个的东西.也许NPM不支持这个概念,但这看起来很奇怪.

在这种情况下,我应该为此字段添加什么?我想摆脱与此相关的npm警告.

虽然文档说UNLICENSED是有效的,但它仍然会发出警告:

$ cat package.json | grep licen
  "license": "UNLICENSED",

$ npm install 
npm WARN package.json data_monitoring_api@0.1.0 license should be a valid SPDX license expression
Run Code Online (Sandbox Code Playgroud)

node.js package.json

65
推荐指数
3
解决办法
4万
查看次数

使`npm install --save`为package.json添加一个严格的版本

当你运行时npm install --save somepackage,它通常会在package.json中添加这样的东西:

"dependencies": {
    "somepackage": "^2.1.0"
}
Run Code Online (Sandbox Code Playgroud)

因为版本前面带有插入符号(^),这意味着如果稍后运行npm install,它可能会安装版本2.3.0.出于相当明显的原因,这可能是不可取的 npm shrinkwrap很有用,但并没有真正解决问题.

所以,我有几个问题:

  1. 安装软件包时,是否可以指定要将其设置为package.json中的特定版本(版本号前没有插入符号)?
  2. 将包发布到npm时,有没有办法在其他开发人员安装包时阻止在版本之前包含插入符的默认值?

version node.js npm package.json

64
推荐指数
2
解决办法
1万
查看次数

找不到模块:错误:无法解析“ core-js / es6”

我的React应用程序的构建过程出现问题。

我总是收到以下错误:

找不到模块:错误:无法解析“ core-js / es6”

如果我在polyfill.js中使用它:

导入'core-js / es6';

那就是我的package.json:

{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "private": true,
  "devDependencies": {
    "@babel/core": "^7.4.0",
    "@babel/preset-env": "^7.4.2",
    "@babel/preset-react": "^7.0.0",
    "@babel/runtime": "^7.4.2",
    "babel-loader": "^8.0.5",
    "babel-preset-es2015": "^6.24.1",
    "copy-webpack-plugin": "^5.0.2",
    "css-hot-loader": "^1.4.4",
    "eslint": "5.15.3",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-loader": "^2.1.2",
    "eslint-plugin-import": "2.16.0",
    "eslint-plugin-jsx-a11y": "6.2.1",
    "eslint-plugin-react": "7.12.4",
    "file-loader": "^3.0.1",
    "node-sass": "^4.11.0",
    "prettier": "^1.16.4",
    "react-hot-loader": "4.8.0",
    "sass-loader": "^7.1.0",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.3.0",
    "webpack-dev-server": "^3.2.1"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "core-js": "^3.0.0",
    "prop-types": "^15.7.2",
    "react": "^16.8.5",
    "react-dom": …
Run Code Online (Sandbox Code Playgroud)

build npm package.json yarnpkg

64
推荐指数
10
解决办法
4万
查看次数

如何修复package.json中未列出的package-lock.json中的易受攻击的npm包?

Github告诉我,package-lock.json文件中的依赖项容易受到攻击并且已过时.问题是,如果我这样做,npm install或者npm update都没有更新package-lock.json文件中的依赖项.

我已经做了很多谷歌搜索,以及删除文件和完成npm install.

如果有人能帮忙解决这个问题,我会非常感激.有问题的包是Hoek,我在package.json文件中实际上没有.

提前谢谢了.

node.js npm package.json package-lock.json

63
推荐指数
5
解决办法
2万
查看次数

你如何使用package.json中的'files'和'目录'属性?

如果a package.jsonfiles道具和/或directories道具:

  "files": [
    "./src/assets/fonts/"
  ],
  "directories": {
     "assets:": "./src/assets"
  }
Run Code Online (Sandbox Code Playgroud)

有哪些方法可以利用它们?文档没有提到一旦指定它们可以用它们做什么.

例如,文件文档说:

"files"字段是要包含在项目中的文件数组.如果您在数组中命名文件夹,那么它还将包含该文件夹中的文件.

"包含在您的项目中"是什么意思?包括在哪里?他们现在不是以前可以获得的?

目录部分,文档说:

将来,此信息可能会以其他创造性方式使用.

它现有的创作方式有哪些?

npm package.json

58
推荐指数
1
解决办法
1万
查看次数

package.json中的根目录

我的问题涉及我希望作为NPM模块发布的现有库.该库已在使用中,目前require通过本地文件系统.

如何指定模块文件的根目录?

如果我有一个像这样的结构:

.
??? package.json
??? src
|   ??? js
|   ??????? lib
|   ?????????? my
|   ?????????????? thing.js
|   ?????????????? that.js
Run Code Online (Sandbox Code Playgroud)

如何指定模块的根目录和可访问的文件src/js/lib/my/

我想从外部项目中使用如下:

var thing = require('my/thing'),
    that = require('my/that');
Run Code Online (Sandbox Code Playgroud)

"files"在package.json中看到了这个属性,这是正确的方法吗?

javascript node.js npm package.json

55
推荐指数
3
解决办法
2万
查看次数

NPM:如何在安装后运行?

只是一个简单的问题:在我的node.js项目中,我怎么能只运行postinstall脚本,而不运行之前的安装?

仅供参考,这是我的package.json:

{
  "name": "gestionclientjs",
  ...,
  "dependencies": {
    ...
  },
  "repository": {},
  "devDependencies": {
    ...
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "grunt test",
    "postinstall" : "bower install && node ./app/server/dbSeed.js",
    "start": "node app/server/app.js"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,我跑:

npm install
Run Code Online (Sandbox Code Playgroud)

在我的项目中,但我想跑

npm postinstall
Run Code Online (Sandbox Code Playgroud)

当我想要的时候(当我确定依赖是好的时候).

node.js npm package.json

54
推荐指数
1
解决办法
3万
查看次数

如何指定`package.json`到npm的路径?

我使用npm脚本来构建我的项目.我希望能够从不同的目录运行脚本.也就是说,而不是执行以下操作:

cd project;
npm run build;
cd ..
Run Code Online (Sandbox Code Playgroud)

......我想简单地做一些事情:

npm run build -config project/package.json;
Run Code Online (Sandbox Code Playgroud)

要么

npm run build -wd project;
Run Code Online (Sandbox Code Playgroud)

这可能吗?

node.js npm package.json

51
推荐指数
1
解决办法
4万
查看次数

如何npm发布特定文件夹但作为包根目录

我有一个项目,包括一个gulp任务,用于构建和打包源和发布在一个名为的目录中dist.我的目标是将它作为npm包发布,但只发布我的dist文件夹.在NPM文件说,我可以使用files标签来指定文件输出.有用.但是,文档还说:

如果您在数组中命名文件夹,那么它还将包含该文件夹中的文件

结果是一个npm包,node_modules看起来像:

生成的npm包

但是我想在包的根目录下看到我的所有文件(没有该dist文件夹).我的index.js文件在dist文件夹中,但应该是root文件.我试图将标签设置files/dist/**/*但不起作用.

我怎样才能实现它?

package npm node-modules package.json

46
推荐指数
7
解决办法
2万
查看次数