问题标签 [npm-scripts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
npm - 重新安装 devDependecies 中列出的软件包后,npm 脚本不起作用
我一直在使用 npm 脚本为前端开发人员开发一个构建系统,并且scripts
在package.json
. 这些包括典型的任务,例如:缩小 css、代码 linting、生成文档、转译 JavaScript……等等。
定义的所有脚本任务都通过 CLI 执行命令来达到预期的结果,例如$ npm run build
, $ npm run docs
...$ npm run watch
为了测试在全新安装所需的节点包后可以成功复制构建系统,我这样做:
- 复制项目目录。
node_modules
从重复的项目目录中删除该文件夹。- 通过在重复的项目目录中执行全新安装
$ npm install
。
正如预期的那样,这会devDependencies
根据package.json
.
但是,在运行了npm install
一些新的脚本任务后,定义了诸如:$ npm run watch
不再从受骗项目中成功工作。
进一步调查显示,没有。重复项目目录的“node_modules”文件夹中列出的顶级包(即全新安装后的那个)比成功运行任务的原始项目目录少了大约 30 个。缺少的所有软件包似乎都是我安装的软件包所依赖的子依赖项。
此外,当$ npm list
通过 CLI 运行时,在原始项目目录和复制的项目目录(即全新安装的目录)中列出的包不同。
所以,我现在处于一个位置,如果不包含node_modules
文件夹(及其内容),我就无法共享项目目录。理想情况下,我想与其他开发人员共享样板代码,他们只需cd
到项目目录并$ npm install
自行运行。
我将不胜感激有关如何解决此问题的任何建议。这不是我以前遇到过的。
提前致谢。
cordova - 离子无法读取未定义的属性“hasOwnProperty”
我正在使用离子框架。我升级到更高版本的 ionic cli 并在运行时收到此错误ionic serve
。
如何解决问题以允许项目运行ionic serve
或ionic build
再次运行?
node.js - 如何通过 npm CLI/API 获取已安装 npm 包的路径?
我正在编写一个 npm 脚本,它被打包为一个 npm 包,将主可执行文件暴露node_modules/.bin
给它的托管项目。
该脚本有自己的 npm 依赖项,并且由于脚本流依赖于将这些依赖项之一复制到不同的位置,因此它需要知道该依赖项安装在哪里。
我怎样才能找到(通过 API 或 npm CLI)该依赖项安装在主机的node_modules
哪里?
javascript - 如何将命令行参数传递给嵌套脚本?
注意:这不是关于将 args 发送到顶级脚本,而是发送到该脚本调用的脚本
在我的 package.json 中,当我调用一个直接采用命令行参数的脚本时,它可以工作。但是当我调用一个调用另一个脚本的脚本时,它不会将命令行参数传递给它。我如何通过它们?
当我运行以下命令时,参数通过:
但是当我通过另一个脚本运行它时,它永远不会得到 args。有没有办法把它们传下去?也许通过像美元符号这样的可变标记?
有什么办法吗?
npm - 如何使用 gulp/browsersync 或类似的东西查看和任务动态源列表
我正在运行具有文件监视功能和 BrowserSync 的 gulpfile。
我正在寻找一种方法来动态更改任务的源数组,而无需重新启动所有任务/手表/进程/服务器。我目前在我的构建过程中使用 Gulp,但是任何具有此功能的类似产品都会很棒。
例子:
改成
无需重新加载 browsersync 进程和其他 gulp.watch 函数。
npm-start - 如何通过 npm 脚本打开浏览器到 localhost
我一直在试图弄清楚如何编写一个npm script
最终会在用户浏览器中启动应用程序而无需他们手动打开浏览器并转到localhost:1234
.
现在我的脚本如下:
想补充"open": <some code here>,
因此,当有人去 GitHub 并克隆或分叉我的存储库时,他们会得到有关如何运行应用程序的说明。我只是认为自动化这将是一个不错的小补充。
有谁知道这怎么可能?我很确定它是并且认为它与在 bash 中调用命令有关。在此先感谢您的帮助!
node.js - 无法在 npm 脚本中同时更改目录
我有一个网站和几个作为本地节点依赖项添加的外部模块(使用"file:..."
)。
要更新我网站中的外部模块引用,我使用如下 npm 脚本:
每当我concurrently "cd ../my-ext-module1 && gulp build" "cd ../my-ext-module2 && gulp build"
在终端运行时,一切都很好。但是,只要使用 运行相同的程序npm run update-own-deps
,就会preupdate-own-deps
退出并出现以下错误:
由于我是 npm 脚本的新手,我不确定我在这里缺少什么。请建议。
更新:愚蠢的我,正在使用旧版本的并发。更新对问题进行了排序。
node.js - 将变量从 NPM 脚本传递到 Webpack
我有一个带有 Webpack 的生产版本,它使用节点process.env
来设置环境变量:
webpack.prod.babel.js:
包.json:
它工作正常,但我需要一些不同的东西。
我需要在 NPM Script 中将生产 url 设置为变量。
所以,而不是这个:
我需要这个:
node.js - npm 脚本因使用进程替换的命令而失败
在我的标准 OSX 终端上运行以下命令可以按预期工作:
但是当我尝试将它作为 NPM 脚本运行时,它失败了:
当我将 NPM 脚本更改为它时,"bash -c 'diff <(ls dir1) <(ls dir2)'"
它首先输出所需的结果,然后仍然抛出错误(退出状态 1)。
编辑:顺便说一下,那些奇怪<()
的符号是过程替换。刚刚了解了他们。
npm - 使用 node-sass 和 postcss autoprefixer 使用 npm 脚本生成源映射
当将输出从一个管道传输到另一个时,是否可以使用 node-sass 和 postcss autoprefixer 生成完全工作的源映射?我目前在 package.json 中有以下内容:
这会产生一个半工作的内联源映射,但指向原始文件的链接不正确,因此在 Chrome devtools 中单击它们不会加载它们(似乎它们被处理为相对链接,然后从 css 文件夹中引用)。我试图通过向--source-map-contents true
node-sass 添加选项来解决此问题,但随后 autoprefixer 出现错误,我怀疑是因为它不喜欢 dataUri 的行长。
理想情况下,无论如何我宁愿输出一个单独的 .map 文件,但是将 node-sass 选项设置为--source-map css/app.css.map
不会写出任何内容,大概是因为只有 css 输出到 stdout。