问:是否可以更改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上工作.
原因:问题的根源是,configure
python repo 的命令将文件输出到调用它的目录中.然而,这些文件与repo的目录中的文件相关make
并且make install
查找这些文件.
在这种情况下,我无法改变,Makefile
因为Python的构建过程是可以理解的复杂.
替代方案:替代方案可能是编写一些install.js
并使用节点的OS独立API和一些child_process.exec()
,我可能会这样做.但是,不离开npm会非常好.
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) 当你运行时npm install --save somepackage
,它通常会在package.json中添加这样的东西:
"dependencies": {
"somepackage": "^2.1.0"
}
Run Code Online (Sandbox Code Playgroud)
因为版本前面带有插入符号(^),这意味着如果稍后运行npm install
,它可能会安装版本2.3.0.出于相当明显的原因,这可能是不可取的 npm shrinkwrap
很有用,但并没有真正解决问题.
所以,我有几个问题:
我的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)Github告诉我,package-lock.json文件中的依赖项容易受到攻击并且已过时.问题是,如果我这样做,npm install
或者npm update
都没有更新package-lock.json文件中的依赖项.
我已经做了很多谷歌搜索,以及删除文件和完成npm install
.
如果有人能帮忙解决这个问题,我会非常感激.有问题的包是Hoek,我在package.json文件中实际上没有.
提前谢谢了.
如果a package.json
有files
道具和/或directories
道具:
"files": [
"./src/assets/fonts/"
],
"directories": {
"assets:": "./src/assets"
}
Run Code Online (Sandbox Code Playgroud)
有哪些方法可以利用它们?文档没有提到一旦指定它们可以用它们做什么.
例如,文件文档说:
"files"字段是要包含在项目中的文件数组.如果您在数组中命名文件夹,那么它还将包含该文件夹中的文件.
"包含在您的项目中"是什么意思?包括在哪里?他们现在不是以前可以获得的?
在目录部分,文档说:
将来,此信息可能会以其他创造性方式使用.
它现有的创作方式有哪些?
我的问题涉及我希望作为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中看到了这个属性,这是正确的方法吗?
只是一个简单的问题:在我的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)
当我想要的时候(当我确定依赖是好的时候).
我使用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)
这可能吗?
我有一个项目,包括一个gulp任务,用于构建和打包源和发布在一个名为的目录中dist
.我的目标是将它作为npm包发布,但只发布我的dist文件夹.在NPM文件说,我可以使用files
标签来指定文件输出.有用.但是,文档还说:
如果您在数组中命名文件夹,那么它还将包含该文件夹中的文件
结果是一个npm包,node_modules看起来像:
但是我想在包的根目录下看到我的所有文件(没有该dist
文件夹).我的index.js
文件在dist
文件夹中,但应该是root文件.我试图将标签设置files
为/dist/**/*
但不起作用.
我怎样才能实现它?
package.json ×10
npm ×9
node.js ×7
build ×1
javascript ×1
makefile ×1
node-modules ×1
package ×1
version ×1
yarnpkg ×1