问题标签 [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.

0 投票
1 回答
767 浏览

npm - 如何从 npm “postinstall” 钩子中获取包名?

Npm 提供了一种在安装每个包后执行自定义可执行文件或脚本的方法(请参阅Hook Scripts)。

这是我写的一个小钩子脚本:

hook-test-npm/node_modules/.hooks/postinstall

然后我以通常的方式安装了一个包:

然而结果并不像我希望的那样:

刚刚安装的包的名称(“some-package”)似乎没有作为我的可执行挂钩的参数提供。

有没有办法从钩子中访问这些信息?

0 投票
2 回答
864 浏览

angular - .Net Core / Angular CLI - NPM 构建自动化(html 到 cshtml)

我正在使用 Visual Studio 2017 中的 npm 脚本使用 .Net Core (netcoreapp1.1) 和 Angular CLI (1.0.1) 开发构建过程。

是否可以编写 npm 脚本以获取 Index.html 正文标记的内容(来自 Angular CLI 创建的文件)并将其放入 .cshtml 文件的正文中?

理想情况下,我想专门使用 npm 脚本并远离 Gulp,但如有必要,我可以接受 Gulp 解决方案。

澄清更新:我的目标是将 Angular CLI 创建的 Index.html 文件中的必要脚本包含到预先存在的 cshtml 视图中,该视图具有我需要保留的一些代码。

如果需要创建一个新文件,有没有办法从两个现有文件(html 和 cshtml)中解析数据并将它们合并为一个?我真的只需要将html正文中的脚本添加到我的视图中。

0 投票
1 回答
754 浏览

javascript - 如何通过 npm 更改用于引导 reactJs 的默认配置文件

我使用create-react-app命令创建了一个非常基本的 hello world reactJs 应用程序,它是 npm 的一部分。这是我作为应用程序模板的一部分获得的目录结构:

在此处输入图像描述

我的package.json文件如下所示:

我观察到,每次执行npm run build命令时,它都会使用目录中的index.html存在和目录中的存在来创建目录中的最终生产版本。我确信这是因为所有内部管道都通过 npm 发生。有人可以帮助我了解这是如何发生的,以及如何将这些目标文件更改为我自己的名为(存在于目录中)和(存在于目录中)的自定义文件?publicindex.jssrcbuildHelloWorld.htmlpublicmyApp.jssrc

0 投票
0 回答
65 浏览

javascript - 如何使用 npm 从命令行配置 API?

我的移动应用程序指向生产 URL,该 URL 硬编码在三个不同的 javascript 文件中。能够使用命令行配置 URL

  1. 我已经向具有默认生产 url( )base_url的文件添加了一个新的配置属性。package.jsonhttp://www.production.com
  2. 然后在运行移动应用程序之前设置一个config属性 ( ) 值,base_url
    npm set config base_url http:www.new_url.com
  3. 最后使用访问所有三个 javascript 文件中的 base_url
    var API_URL = process.env.npm_package_config_base_url;

问题

  1. process.env.npm_package_confi_base_url正在回归undefined

  2. 有没有办法在 npm 脚本中传递 url,例如
    npm run configure_api --base_url
    这将config.base_url使用值更新,例如http://www.domain.docker01.com,我可以在所有 javascript 文件中访问?

包.json

谢谢你。

0 投票
2 回答
1983 浏览

node.js - 如何在节点 6.10.1 中使用 npm 安装所有依赖项

问题:如果我运行以下命令

仅安装 package.json 文件中“依赖项”部分中提到的包。“devDependencies”中的那些没有被安装。为了安装“devDependencies”,我需要运行以下命令:

我的问题是,有没有一种方法可以通过一个命令来安装两者(我知道我可以通过定义一个 npm 自定义脚本来做到这一点,但我不喜欢那个解决方案)。

注意:我的节点版本是 6.10.1 这个问题在我升级到 6.10.1 后开始出现

0 投票
1 回答
766 浏览

bash - 使用 node-sass 和 autprefixer 的 npm 脚本导致 browser-sync 运行两次

我有以下 npm 脚本设置来完成我所有的 scss 和 js linting、编译和捆绑。它们确实有效,但是似乎还有改进的余地。

目前,当我观察更改并保存 scss 文件时,浏览器同步会触发两次。这是由于 node-sass 运行并更改文件,然后 autoprefixer 运行并更改同一文件。(为完整起见,输出如下)

当然我可以合并这些并更改一次文件并让浏览器同步触发一次?

谢谢

0 投票
2 回答
976 浏览

node.js - Windows 上的节点环境变量

我注意到这种奇怪的行为,这并不是什么大不了的事,但却让我很恼火。

在我的 package.json 文件中,在“脚本”部分下,我有一个“开始”条目。它看起来像这样:

在 Mac 终端上打字npm start工作正常,nodemon 按预期使用正确的 APPLICATION_ENV 变量运行应用程序。当我在 Windows 环境中尝试相同的操作时,我收到以下错误:

“'APPLICATION_ENV' 不是内部或外部命令、可运行程序或批处理文件。”

我已经尝试过 git-bash shell 和正常的 Win CMD 提示符,同样的处理。

我觉得这很奇怪,因为直接在终端中输入命令(而不是通过 npm start 通过 package.json 脚本)工作正常。

有没有其他人看到这个并找到解决方案?谢谢!!

0 投票
1 回答
898 浏览

node.js - npm 使用 cpx 复制和编译 LESS 文件

我正在尝试使用 npm 工具和包将 LESS 文件和 ES6 文件复制和编译/转换到另一个目录。
这是我的基本结构:

这是所需的新目录结构:

对于我正在使用的 es6 transpile babel,它工作得很好:

但我与LESS文件斗争。我知道我可以cpx用来复制文件并保持结构:

但我想在处理它们时复制它们并将其LESSCSS.
通过管道传递的每个文件都有-t一个模块转换的参数,但我找不到合适的模块来传递它们。
我试过了lessclessify但似乎不太合适。

我不介意使用webpack或任何其他模式来实现这一点。

0 投票
1 回答
702 浏览

javascript - NPM 脚本后挂钩未触发

我正在使用 npm 脚本进行测试,以最终消除对 Gulp 的依赖。我只是从一个名为watch. 该脚本最终将运行所有以该watch名称开头的脚本;例如watch:styles。我的watch:styles脚本将使用 node-sass 将我的 sass 文件编译成 CSS。这行得通。但是,我的下一步是创建一个postwatch:styles脚本,.css通过 PostCSS 和 Autoprefixer 运行新创建的文件。

但是,问题是我的postwatch:styles钩子永远不会被触发运行。

包.json

关于为什么我的帖子挂钩没有触发的任何建议或建议?初始watch:styles运行良好。如果我yarn postwatch:styles手动运行脚本运行正确。会不会有一个静默错误watch:styles阻止钩子触发?

任何建议将不胜感激。

0 投票
1 回答
618 浏览

javascript - babel es5 到 es6 在导入时将较少的扩展转换为 css

./lib在发布到 npm 之前,我编写了一些构建目录的 npm 脚本。
1.脚本负责将所有es6 *.js文件转换./src/components/es5语法,然后将文件复制到./lib(相同的结构)。
这是脚本:

这是.babelrc文件:

我有另一个脚本负责将.less文件转换为.css并将它们复制到./lib(相同的结构):

一切都按预期进行,但我现在有一个问题。我import.js文件中的内容是指.less文件,但我需要将其更改为.css扩展名。
为了清楚起见,
我现在拥有的是:

转换成这个:

但我希望它转换为: