npm包:package.json处理

npm包:package.json处理,json,node.js,npm,package.json,Json,Node.js,Npm,Package.json,我正在尝试创建一个可重用的NPM模块。我下面的教程说我需要dist文件夹中的package.json文件。因此,起初我只是将package.json文件从项目根目录复制到dist文件夹中,一切正常 问题是,当涉及到源代码管理时,您确实不希望签入dist文件夹中的任何内容,因此我所做的是在项目的根目录中创建一个package.dist.json文件,然后在构建步骤中将其复制到dist文件夹并重命名 这是行不通的。以下是我的构建脚本: "scripts": { "test": "echo \

我正在尝试创建一个可重用的NPM模块。我下面的教程说我需要
dist
文件夹中的
package.json
文件。因此,起初我只是将
package.json
文件从项目根目录复制到dist文件夹中,一切正常

问题是,当涉及到源代码管理时,您确实不希望签入
dist
文件夹中的任何内容,因此我所做的是在项目的根目录中创建一个
package.dist.json
文件,然后在构建步骤中将其复制到
dist
文件夹并重命名

这是行不通的。以下是我的构建脚本:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "transpile": "ngc",
    "package": "rollup -c",
    "minify": "uglifyjs dist/bundles/test-service.umd.js --screw-ie8 --compress --mangle --comments --output dist/bundles/test-service.umd.min.js",
    "build": "copyfiles package.dist.json dist && rename dist/package.dist.json dist/package.json && npm run transpile && npm run package && npm run minify && npm pack dist/"
},
以下是我的建议:

"devDependencies": {
    "@angular/compiler": "^4.0.0",
    "@angular/compiler-cli": "^4.0.0",
    "rollup": "^0.47.4",
    "typescript": "^2.4.2",
    "uglify-js": "^3.0.27",
    "copyfiles": "^1.0.0",
    "rename-cli": "^4.0.0"
  },
这不起作用,我收到一个错误,说:

该命令的语法不正确

我甚至不确定这是否是最好的方法。有更好的方法吗?如果没有,为什么我的
build
任务不起作用

下面是rollup.config.js:

import angularInline from 'rollup-plugin-angular-inline';

export default {
    entry: 'dist/hello-world.js',
    dest: 'dist/bundles/hello-world.umd.js',
    sourceMap: 'inline',
    format: 'umd',
    moduleName: 'hello-world-app',
    globals: {
        '@angular/core': 'ng.core',
        '@angular/router': 'ng.router'
    },
    plugins: [
        angularInline({
            include: './dist/src/**/*.component.js'
        })
    ],
    external: ['@angular/core', '@angular/router'],
    treeshake: true
}

您似乎正在使用windows,因为a表示该错误是windows命令行错误。如果您正在寻求有关命令行问题的建议(供将来参考),则此信息非常有用

请尝试以下操作:

  • 将要复制/移动的文件名用引号括起来

    copyfiles "package.dist.json" dist
    
  • 复制/移动时使用windows路径分隔符
    \
    (而不是unix/linux分隔符
    /

    rename dist\package.dist.json dist\package.json
    # also try with quotes
    rename "dist\package.dist.json" "dist\package.json"
    
然而,每当试图构建一个可分发的模块时,用户可能希望在不同的平台上分叉您的代码并运行他们自己的构建,我推荐一种更健壮的技术来构建跨平台工作的代码

  • 选项1:狼吞虎咽、咕噜咕噜和/或朋友
  • 选项2:在NodeJS中编写构建代码。这可能只是一个简单的JS文件,它使用NodeJS和内置的
    fs
    模块执行所有复制、重命名等操作。您的build命令应该是
    “build”:“node my build script.js”

您似乎正在使用windows,因为a表示错误是windows命令行错误。如果您正在寻求有关命令行问题的建议(供将来参考),则此信息非常有用

请尝试以下操作:

  • 将要复制/移动的文件名用引号括起来

    copyfiles "package.dist.json" dist
    
  • 复制/移动时使用windows路径分隔符
    \
    (而不是unix/linux分隔符
    /

    rename dist\package.dist.json dist\package.json
    # also try with quotes
    rename "dist\package.dist.json" "dist\package.json"
    
然而,每当试图构建一个可分发的模块时,用户可能希望在不同的平台上分叉您的代码并运行他们自己的构建,我推荐一种更健壮的技术来构建跨平台工作的代码

  • 选项1:狼吞虎咽、咕噜咕噜和/或朋友
  • 选项2:在NodeJS中编写构建代码。这可能只是一个简单的JS文件,它使用NodeJS和内置的
    fs
    模块执行所有复制、重命名等操作。您的build命令应该是
    “build”:“node my build script.js”

您的另一个脚本的格式必须不正确。请用您的所有包更新您的问题。json
脚本
(minify、transfile等)我已经用所有脚本更新了我的问题。您介意也发布您的rollup.config文件吗。我添加了rollup.config.js您的其他脚本之一一定是格式不正确的。你们能用你们所有的包更新你们的问题吗?json
脚本(minify,transfile,等等)我已经用所有的脚本更新了我的问题。你们介意把你们的rollup.config文件也发布一下吗?我添加了rollup.config.js